dzx 7 месяцев назад
Родитель
Сommit
ee4ce67173

+ 44 - 26
src/main/java/com/xjrsoft/module/oa/controller/OfficialDocumentReceivedHandleController.java

@@ -1,27 +1,28 @@
 package com.xjrsoft.module.oa.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xjrsoft.common.annotation.XjrLog;
+import com.xjrsoft.common.enums.DeleteMark;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.module.oa.dto.AddOfficialDocumentReceivedHandleDto;
 import com.xjrsoft.module.oa.dto.OfficialDocumentReceivedHandlePageDto;
-import com.xjrsoft.module.oa.dto.UpdateOfficialDocumentReceivedHandleDto;
+import com.xjrsoft.module.oa.dto.AddOfficialDocumentReceivedHandleAlertSetDto;
 import com.xjrsoft.module.oa.entity.OfficialDocumentReceivedHandle;
 import com.xjrsoft.module.oa.service.IOfficialDocumentReceivedHandleService;
-import com.xjrsoft.module.oa.service.IOfficialDocumentReceivedService;
+import com.xjrsoft.module.oa.vo.LastOfficialDocumentReceivedHandleAlertVo;
 import com.xjrsoft.module.oa.vo.OfficialDocumentReceivedHandlePageVo;
 import com.xjrsoft.module.oa.vo.OfficialDocumentReceivedHandleVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -66,35 +67,52 @@ public class OfficialDocumentReceivedHandleController {
         return RT.ok(BeanUtil.toBean(officialDocumentReceivedHandle, OfficialDocumentReceivedHandleVo.class));
     }
 
-
-    @PostMapping
-    @ApiOperation(value = "新增公文收文-承办表")
+    @PostMapping(value = "last-alert-time")
+    @ApiOperation(value = "新增公文收文-承办表-最新提醒时间")
     @SaCheckPermission("officialdocumentreceivedhandle:add")
-    @XjrLog(value = "新增公文收文-承办表")
-    public RT<Boolean> add(@Valid @RequestBody AddOfficialDocumentReceivedHandleDto dto){
-        OfficialDocumentReceivedHandle officialDocumentReceivedHandle = BeanUtil.toBean(dto, OfficialDocumentReceivedHandle.class);
-        boolean isSuccess = officialDocumentReceivedHandleService.save(officialDocumentReceivedHandle);
-        return RT.ok(isSuccess);
+    @XjrLog(value = "新增公文收文-承办表-最新提醒时间")
+    public RT<LastOfficialDocumentReceivedHandleAlertVo> lastAlertTime(@RequestParam Long id){
+        List<OfficialDocumentReceivedHandle> list = officialDocumentReceivedHandleService.list(
+                new QueryWrapper<OfficialDocumentReceivedHandle>().lambda()
+                        .eq(OfficialDocumentReceivedHandle::getDeleteMark, DeleteMark.NODELETE.getCode())
+                        .eq(OfficialDocumentReceivedHandle::getIsTransfer, 0)
+                        .eq(OfficialDocumentReceivedHandle::getOfficialDocumentReceivedId, id)
+                        .eq(OfficialDocumentReceivedHandle::getReceiveUserId, StpUtil.getLoginIdAsLong())
+                        .orderByDesc(OfficialDocumentReceivedHandle::getId)
+
+        );
+        if(!list.isEmpty()){
+            OfficialDocumentReceivedHandle receivedHandle = list.get(0);
+            LastOfficialDocumentReceivedHandleAlertVo alertVo = BeanUtil.toBean(receivedHandle, LastOfficialDocumentReceivedHandleAlertVo.class);
+            alertVo.setId(receivedHandle.getOfficialDocumentReceivedId());
+            return RT.ok(alertVo);
+        }
+        return RT.ok(new LastOfficialDocumentReceivedHandleAlertVo());
     }
 
-    @PutMapping
-    @ApiOperation(value = "修改公文收文-承办表")
-    @SaCheckPermission("officialdocumentreceivedhandle:edit")
-    @XjrLog(value = "修改公文收文-承办表")
-    public RT<Boolean> update(@Valid @RequestBody UpdateOfficialDocumentReceivedHandleDto dto){
+    @PostMapping(value = "alert-set")
+    @ApiOperation(value = "新增公文收文-承办表-提醒设置")
+    @SaCheckPermission("officialdocumentreceivedhandle:add")
+    @XjrLog(value = "新增公文收文-承办表-提醒设置")
+    public RT<Boolean> alertSet(@Valid @RequestBody AddOfficialDocumentReceivedHandleAlertSetDto dto){
+        return RT.ok(officialDocumentReceivedHandleService.addAlertTime(dto));
+    }
 
-        OfficialDocumentReceivedHandle officialDocumentReceivedHandle = BeanUtil.toBean(dto, OfficialDocumentReceivedHandle.class);
-        return RT.ok(officialDocumentReceivedHandleService.updateById(officialDocumentReceivedHandle));
 
+    @PostMapping(value = "handle")
+    @ApiOperation(value = "新增公文收文-承办表-处理")
+    @SaCheckPermission("officialdocumentreceivedhandle:add")
+    @XjrLog(value = "新增公文收文-承办表-处理")
+    public RT<Boolean> handle(@Valid @RequestBody AddOfficialDocumentReceivedHandleDto dto){
+        return RT.ok(officialDocumentReceivedHandleService.handle(dto));
     }
 
-    @DeleteMapping
-    @ApiOperation(value = "删除公文收文-承办表")
-    @SaCheckPermission("officialdocumentreceivedhandle:delete")
-    @XjrLog(value = "删除公文收文-承办表")
-    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
-        return RT.ok(officialDocumentReceivedHandleService.removeBatchByIds(ids));
-
+    @PostMapping(value = "transfer")
+    @ApiOperation(value = "新增公文收文-承办表-转办")
+    @SaCheckPermission("officialdocumentreceivedhandle:add")
+    @XjrLog(value = "新增公文收文-承办表-转办")
+    public RT<Boolean> transfer(@Valid @RequestBody AddOfficialDocumentReceivedHandleDto dto){
+        return RT.ok(officialDocumentReceivedHandleService.transfer(dto));
     }
 
 }

+ 29 - 0
src/main/java/com/xjrsoft/module/oa/dto/AddOfficialDocumentReceivedHandleAlertSetDto.java

@@ -0,0 +1,29 @@
+package com.xjrsoft.module.oa.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+
+/**
+* @title: 公文收文-承办表
+* @Author dzx
+* @Date: 2025-04-14
+* @Version 1.0
+*/
+@Data
+public class AddOfficialDocumentReceivedHandleAlertSetDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("收文id")
+    private Long id;
+
+    @ApiModelProperty("提醒时间")
+    private LocalDateTime alertTime;
+}

+ 8 - 1
src/main/java/com/xjrsoft/module/oa/service/IOfficialDocumentReceivedHandleService.java

@@ -2,10 +2,11 @@ package com.xjrsoft.module.oa.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.oa.dto.AddOfficialDocumentReceivedHandleAlertSetDto;
+import com.xjrsoft.module.oa.dto.AddOfficialDocumentReceivedHandleDto;
 import com.xjrsoft.module.oa.dto.OfficialDocumentReceivedHandlePageDto;
 import com.xjrsoft.module.oa.entity.OfficialDocumentReceivedHandle;
 import com.xjrsoft.module.oa.vo.OfficialDocumentReceivedHandlePageVo;
-import org.apache.ibatis.annotations.Param;
 
 /**
 * @title: 公文收文-承办表
@@ -17,4 +18,10 @@ import org.apache.ibatis.annotations.Param;
 public interface IOfficialDocumentReceivedHandleService extends MPJBaseService<OfficialDocumentReceivedHandle> {
 
     Page<OfficialDocumentReceivedHandlePageVo> getPage(Page<OfficialDocumentReceivedHandlePageVo> page, OfficialDocumentReceivedHandlePageDto dto);
+
+    Boolean addAlertTime(AddOfficialDocumentReceivedHandleAlertSetDto dto);
+
+    Boolean handle(AddOfficialDocumentReceivedHandleDto dto);
+
+    Boolean transfer(AddOfficialDocumentReceivedHandleDto dto);
 }

+ 57 - 0
src/main/java/com/xjrsoft/module/oa/service/impl/OfficialDocumentReceivedHandleServiceImpl.java

@@ -1,14 +1,24 @@
 package com.xjrsoft.module.oa.service.impl;
 
+import cn.dev33.satoken.stp.StpUtil;
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.oa.dto.AddOfficialDocumentReceivedHandleAlertSetDto;
+import com.xjrsoft.module.oa.dto.AddOfficialDocumentReceivedHandleDto;
 import com.xjrsoft.module.oa.dto.OfficialDocumentReceivedHandlePageDto;
+import com.xjrsoft.module.oa.entity.OfficialDocumentReceived;
 import com.xjrsoft.module.oa.entity.OfficialDocumentReceivedHandle;
 import com.xjrsoft.module.oa.mapper.OfficialDocumentReceivedHandleMapper;
+import com.xjrsoft.module.oa.mapper.OfficialDocumentReceivedMapper;
 import com.xjrsoft.module.oa.service.IOfficialDocumentReceivedHandleService;
 import com.xjrsoft.module.oa.vo.OfficialDocumentReceivedHandlePageVo;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDateTime;
 
 /**
 * @title: 公文收文-承办表
@@ -19,8 +29,55 @@ import org.springframework.stereotype.Service;
 @Service
 @AllArgsConstructor
 public class OfficialDocumentReceivedHandleServiceImpl extends MPJBaseServiceImpl<OfficialDocumentReceivedHandleMapper, OfficialDocumentReceivedHandle> implements IOfficialDocumentReceivedHandleService {
+    private final OfficialDocumentReceivedMapper documentReceivedMapper;
+
     @Override
     public Page<OfficialDocumentReceivedHandlePageVo> getPage(Page<OfficialDocumentReceivedHandlePageVo> page, OfficialDocumentReceivedHandlePageDto dto) {
         return this.baseMapper.getPage(page, dto);
     }
+
+    @Override
+    @Transactional
+    public Boolean addAlertTime(AddOfficialDocumentReceivedHandleAlertSetDto dto) {
+        this.remove(
+                new QueryWrapper<OfficialDocumentReceivedHandle>().lambda()
+                        .eq(OfficialDocumentReceivedHandle::getOfficialDocumentReceivedId, dto.getId())
+                        .eq(OfficialDocumentReceivedHandle::getReceiveUserId, StpUtil.getLoginIdAsLong())
+        );
+        OfficialDocumentReceivedHandle receivedHandle = new OfficialDocumentReceivedHandle();
+        receivedHandle.setAlertTime(dto.getAlertTime());
+        receivedHandle.setOfficialDocumentReceivedId(dto.getId());
+        receivedHandle.setIsTransfer(0);
+        receivedHandle.setReceiveUserId(StpUtil.getLoginIdAsLong());
+        boolean isSuccess = this.save(receivedHandle);
+        return isSuccess;
+    }
+
+    @Override
+    @Transactional
+    public Boolean handle(AddOfficialDocumentReceivedHandleDto dto) {
+        LocalDateTime now = LocalDateTime.now();
+        OfficialDocumentReceivedHandle handle = BeanUtil.toBean(dto, OfficialDocumentReceivedHandle.class);
+        handle.setIsHandle(1);
+        handle.setReceiveUserId(StpUtil.getLoginIdAsLong());
+        handle.setHandleTime(now);
+        this.save(handle);
+
+        OfficialDocumentReceived received = documentReceivedMapper.selectById(handle.getOfficialDocumentReceivedId());
+        received.setIsHandle(1);
+        received.setHandleTime(now);
+        received.setHandleUserId(StpUtil.getLoginIdAsLong());
+        documentReceivedMapper.updateById(received);
+        return true;
+    }
+
+    @Override
+    @Transactional
+    public Boolean transfer(AddOfficialDocumentReceivedHandleDto dto) {
+        OfficialDocumentReceivedHandle handle = BeanUtil.toBean(dto, OfficialDocumentReceivedHandle.class);
+        handle.setIsHandle(0);
+        handle.setIsTransfer(1);
+        this.save(handle);
+        return true;
+    }
 }

+ 23 - 0
src/main/java/com/xjrsoft/module/oa/vo/LastOfficialDocumentReceivedHandleAlertVo.java

@@ -0,0 +1,23 @@
+package com.xjrsoft.module.oa.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+* @title: 公文收文-承办表表单出参
+* @Author dzx
+* @Date: 2025-04-14
+* @Version 1.0
+*/
+@Data
+public class LastOfficialDocumentReceivedHandleAlertVo {
+
+    @ApiModelProperty("主键编号")
+    private Long id;
+
+    @ApiModelProperty("提醒时间")
+    private LocalDateTime alertTime;
+
+}

+ 1 - 1
src/main/resources/mapper/oa/OfficialDocumentReceivedHandleMapper.xml

@@ -9,7 +9,7 @@
         REPLACE((
         SELECT GROUP_CONCAT(c2.name) FROM official_document_received_handle c1
         INNER JOIN xjr_user c2 ON c1.receive_user_id = c2.id
-        WHERE c1.delete_mark = 0 AND c1.official_document_received_id = t1.id
+        WHERE c1.delete_mark = 0 AND c1.official_document_received_id = t1.id and c1.is_transfer = 1
         ),',', '>') AS receive_user_name,t1.is_handle,t4.name as handle_user_name,t1.handle_time FROM official_document_received t1
         INNER JOIN xjr_workflow_form_relation t2 ON t1.id =  CAST(t2.form_key_value AS SIGNED)
         LEFT JOIN xjr_user t3 ON t1.handle_duty_user_id = t3.id