浏览代码

修改签字注师流程

sangwenwei 1 年之前
父节点
当前提交
ac951fdb89

+ 45 - 2
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReport/controller/CwProjectReportController.java

@@ -17,6 +17,7 @@ import com.jeeplus.finance.projectReport.domain.CwProjectReport;
 import com.jeeplus.finance.projectReport.domain.CwProjectReportData;
 import com.jeeplus.finance.projectReport.domain.CwProjectReportSignature;
 import com.jeeplus.finance.projectReport.domain.CwSignatureAnnotator;
+import com.jeeplus.finance.projectReport.mapper.CwSignatureAnnotatorMapper;
 import com.jeeplus.finance.projectReport.mapper.ProjectReportWorkAttachmentMapper;
 import com.jeeplus.finance.projectReport.service.CwProjectReportService;
 import com.jeeplus.finance.projectReport.service.dto.CwProjectReportDTO;
@@ -26,6 +27,7 @@ import com.jeeplus.flowable.feign.IFlowableApi;
 import com.jeeplus.logging.annotation.ApiLog;
 import com.jeeplus.logging.constant.enums.LogTypeEnum;
 //import com.jeeplus.pubmodules.oss.domain.WorkAttachment;
+import com.jeeplus.pubmodules.collect.service.dto.CollectDto;
 import com.jeeplus.sys.domain.WorkAttachmentInfo;
 import com.jeeplus.sys.feign.IDictApi;
 import com.jeeplus.sys.feign.IUserApi;
@@ -614,9 +616,20 @@ public class CwProjectReportController {
      */
     @ApiOperation(value = "发起修改签字注师流程")
     @PostMapping(value = "saveSignatureAnnotator")
-    public ResponseEntity saveSignatureAnnotator(@Valid @RequestBody CwProjectReportData reportData) throws Exception {
+    public ResponseEntity saveSignatureAnnotator(@RequestBody CwProjectReportData reportData) throws Exception {
         String id = projectReportService.saveSignatureAnnotator(reportData);
-        return ResponseUtil.newInstance().add("businessTable", "cw_project_report").add("businessId", id).ok ("操作成功");
+        return ResponseUtil.newInstance().add("businessTable", "cw_project_report_signature_annotator").add("businessId", id).ok ("操作成功");
+
+    }
+
+    /**
+     * 报告-修改签字注师   同意
+     */
+    @ApiOperation(value = "报告-修改签字注师   同意")
+    @PostMapping("/updateAgree")
+    public ResponseEntity saveReturnAgree(@RequestBody CwProjectReport report) throws Exception{
+        String s = projectReportService.updateAgree(report);
+        return ResponseUtil.newInstance().add("businessTable", "cw_project_report_signature_annotator").add("businessId", report.getId()).ok ("操作成功");
     }
 
 
@@ -631,6 +644,36 @@ public class CwProjectReportController {
         return ResponseEntity.ok(cwSignatureAnnotators);
     }
 
+    /**
+     * 根据id查找修改签字注师数据
+     */
+    @ApiOperation(value = "根据id查找修改签字注师数据")
+    @GetMapping("getSigById")
+    public ResponseEntity getSigById(@RequestParam("id") String id) {
+        CwSignatureAnnotator cwProjectReportSignature = projectReportService.getSigById ( id );
+        return ResponseEntity.ok (cwProjectReportSignature);
+    }
+
+    /**
+     * 修改签字注师退回状态
+     */
+    @ApiOperation(value = "修改签字注师退回状态")
+    @PostMapping("updateStatusByIdSig")
+    public ResponseEntity updateStatusByIdSig(@RequestBody CwProjectReport report) {
+        projectReportService.updateStatusByIdSig(report);
+        return ResponseEntity.ok ("修改成功");
+    }
+
+    /**
+     * 修改签字注师流程终止
+     */
+    @ApiOperation(value = "修改签字注师流程终止")
+    @PostMapping("/returnRequest")
+    public ResponseEntity returnRequest(@RequestBody CwProjectReport report) throws Exception{
+        projectReportService.returnRequest(report.getId());
+        return ResponseEntity.ok("操作完成");
+    }
+
 
 
 

+ 6 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReport/domain/CwProjectReport.java

@@ -252,7 +252,12 @@ public class CwProjectReport extends BaseEntity {
     /**
      * 签字注师状态
      */
-
     private String signatureAnnotatorStatus;
 
+    /**
+     * 修改签字注师原因
+     */
+    @TableField(exist = false)
+    private String sigReason;
+
 }

+ 20 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReport/domain/CwProjectReportData.java

@@ -494,4 +494,24 @@ public class CwProjectReportData extends BaseDTO {
      */
 
     private String signatureAnnotatorStatus;
+
+    /**
+     * 修改原因
+     */
+    private String reason;
+
+    /**
+     * 修改签字注师流程id
+     */
+    private String procInsSigId;
+
+    /**
+     * 修改原因
+     */
+    private String sigReason;
+
+    /**
+     * 修改签字注师  流程taskId
+     */
+    private String taskSigId;
 }

+ 40 - 2
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReport/domain/CwSignatureAnnotator.java

@@ -1,5 +1,6 @@
 package com.jeeplus.finance.projectReport.domain;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.jeeplus.core.domain.BaseEntity;
 import lombok.Data;
@@ -8,6 +9,10 @@ import lombok.Data;
 @TableName(value = "cw_project_report_signature_annotator")
 public class CwSignatureAnnotator extends BaseEntity {
     /**
+     * id
+     */
+    private String id;
+    /**
      * 签字注师1
      */
     private String signatureAnnotator1;
@@ -25,10 +30,43 @@ public class CwSignatureAnnotator extends BaseEntity {
     private String reportId;
 
     /**
-     * 创建
+     * 修改发起
      */
-    private String userName;
+    private String updateUser;
+
+    /**
+     * json数据
+     */
+    private String jsonData;
 
+    /**
+     * 流程id
+     */
+    private String procInsId;
+
+    private String processDefinitionId;
+
+    /*
+    修改原因
+     */
+    private String reason;
+
+    /**
+     * 修改状态
+     */
+    private String status;
+
+    /**
+     * 修改签字注师  流程taskId
+     */
+    @TableField(exist = false)
+    private String taskId;
+
+    /**
+     * 修改人
+     */
+    @TableField(exist = false)
+    private String userName;
 
 
 

+ 2 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReport/mapper/CwProjectReportMapper.java

@@ -224,4 +224,6 @@ public interface CwProjectReportMapper extends BaseMapper<CwProjectReport> {
      */
     @InterceptorIgnore(tenantLine = "true")
     List<CwProjectReport> getReportInfoByNoList(@Param("reportNoList") List<String> reportNoList);
+
+    void updatesigStatusById(CwProjectReport report);
 }

+ 11 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReport/mapper/CwSignatureAnnotatorMapper.java

@@ -3,10 +3,20 @@ package com.jeeplus.finance.projectReport.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.jeeplus.finance.projectReport.domain.CwProjectReport;
 import com.jeeplus.finance.projectReport.domain.CwSignatureAnnotator;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.web.bind.annotation.RequestParam;
 
 /**
  * 财务-修改签字注师记录表
  */
-
+@Mapper
 public interface CwSignatureAnnotatorMapper extends BaseMapper<CwSignatureAnnotator> {
+    CwSignatureAnnotator getSigById(String id);
+
+    void updateStatusById(CwSignatureAnnotator cwSignatureAnnotator);
+
+    void setClearReason(@Param("id")String id);
+
+    void updateStatusBySigId(@Param("signatureAnnotatorStatus")String signatureAnnotatorStatus, @Param("id")String id);
 }

+ 4 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReport/mapper/xml/CwProjectReportMapper.xml

@@ -891,6 +891,10 @@
             cw_prnl.report_no=#{reportNo}
     </select>
 
+    <update id="updatesigStatusById">
+        update cw_project_report set signature_annotator1=#{signatureAnnotator1},signature_annotator2=#{signatureAnnotator2},signature_annotator_status=#{signatureAnnotatorStatus} where id=#{id}
+    </update>
+
 
 
 </mapper>

+ 2 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReport/mapper/xml/CwProjectReportSignatureMapper.xml

@@ -91,7 +91,8 @@
             (SELECT DISTINCT su.login_name  from cw_project_report_signature_annotator sa
             LEFT JOIN sys_user su on sa.create_by_id=su.id
             where sa.create_by_id= sa.create_by_id and sa.report_id=#{reportId} and sa.create_by_id=(SELECT create_by_id from cw_project_report where id=#{reportId})) as userName,
-            sa.create_time
+            sa.create_time,
+            sa.reason
         from
             cw_project_report_signature_annotator sa
         LEFT JOIN sys_user su on sa.create_by_id=su.id

+ 82 - 5
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReport/service/CwProjectReportService.java

@@ -574,6 +574,12 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
             if(StringUtils.isEmpty(li.getSignatureAnnotatorStatus())){
                 li.setSignatureAnnotatorStatus("0");
             }
+            CwSignatureAnnotator sigById = cwSignatureAnnotatorMapper.getSigById(li.getId());
+            if (ObjectUtil.isNotEmpty(sigById)){
+                li.setProcInsSigId(sigById.getProcInsId());
+                li.setSigReason(sigById.getReason());
+                li.setTaskSigId(sigById.getTaskId());
+            }
         });
         return list;
 
@@ -948,6 +954,11 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
             }
 
         }
+        CwSignatureAnnotator cwSignatureAnnotator=cwSignatureAnnotatorMapper.getSigById(id);
+        if (ObjectUtil.isNotEmpty(cwSignatureAnnotator)){
+            reportData.setProcInsSigId(cwSignatureAnnotator.getProcInsId());
+            reportData.setSigReason(cwSignatureAnnotator.getReason());
+        }
         return reportData;
     }
 
@@ -3262,26 +3273,92 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
     public String saveSignatureAnnotator(CwProjectReportData reportData) {
         CwProjectReport report = cwProjectReportService.getById(reportData.getId());
         if (ObjectUtil.isNotEmpty(report)){
+            //将获取到的报告信息转为json格式存到历史记录表中
+            String jsonString = JSON.toJSONString(report);
             //修改报告表中的签字注师
             report.setSignatureAnnotatorStatus(reportData.getSignatureAnnotatorStatus());
             report.setSignatureAnnotator1(reportData.getSignatureAnnotator1());
             report.setSignatureAnnotator2(reportData.getSignatureAnnotator2());
-            reportMapper.updateById(report);
+            reportMapper.updatesigStatusById(report);
             //将信息添加到签字注师记录表中
             CwSignatureAnnotator cwSignatureAnnotator = new CwSignatureAnnotator();
+            //生成id
+            String detailId = UUID.randomUUID().toString().replace("-", "");
+            cwSignatureAnnotator.setId(detailId);
             cwSignatureAnnotator.setReportId(reportData.getId());
             cwSignatureAnnotator.setSignatureAnnotator1(reportData.getSignatureAnnotator1());
             cwSignatureAnnotator.setSignatureAnnotator2(reportData.getSignatureAnnotator2());
-            cwSignatureAnnotator.setUserName(report.getCreateName());
+            cwSignatureAnnotator.setUpdateUser(report.getCreateName());
+            cwSignatureAnnotator.setJsonData(jsonString);
+            cwSignatureAnnotator.setStatus(reportData.getSignatureAnnotatorStatus());
+            cwSignatureAnnotator.setReason(reportData.getSigReason());
             cwSignatureAnnotatorMapper.insert(cwSignatureAnnotator);
+            return detailId;
         }else {
-            return reportData.getId();
+            return "";
         }
-        return reportData.getId();
+
     }
 
+    /**
+     * 签字注师  驳回
+     * @param data
+     * @return
+     */
     public String updateSigStatusById(CwProjectReport data) {
-        reportMapper.updateById(data);
+        reportMapper.updatesigStatusById(data);
+        CwSignatureAnnotator sigById = cwSignatureAnnotatorMapper.getSigById(data.getId());
+        cwSignatureAnnotatorMapper.updateStatusBySigId("4",sigById.getId());
         return "修改成功";
     }
+
+    /**
+     * 修改签字注师  同意
+     * @param report
+     * @return
+     */
+    public String updateAgree(CwProjectReport report) {
+        //修改报告表中的签字注师状态
+        reportMapper.updatesigStatusById(report);
+        //修改签字注师记录表中的状态
+        CwSignatureAnnotator sig = cwSignatureAnnotatorMapper.getSigById(report.getId());
+        sig.setStatus(report.getSignatureAnnotatorStatus());
+        sig.setReason(report.getSigReason());
+        sig.setSignatureAnnotator1(report.getSignatureAnnotator1());
+        sig.setSignatureAnnotator2(report.getSignatureAnnotator2());
+        cwSignatureAnnotatorMapper.updateStatusById(sig);
+        return sig.getId();
+    }
+
+    public CwSignatureAnnotator getSigById(String id) {
+        CwSignatureAnnotator cwSignatureAnnotator=cwSignatureAnnotatorMapper.selectById(id);
+        return cwSignatureAnnotator;
+    }
+
+
+    public void updateStatusByIdSig(CwProjectReport report) {
+        CwSignatureAnnotator sigById = cwSignatureAnnotatorMapper.getSigById(report.getId());
+        cwSignatureAnnotatorMapper.updateStatusBySigId(report.getSignatureAnnotatorStatus(),sigById.getId());
+        //获取记录表中的json数据
+        CwProjectReport reportData = JSON.parseObject(sigById.getJsonData(), CwProjectReport.class);
+        reportData.setSignatureAnnotatorStatus(report.getSignatureAnnotatorStatus());
+        //将报告表中的签字注师还原
+        reportMapper.updatesigStatusById(reportData);
+
+    }
+
+    public void returnRequest(String id) {
+        CwSignatureAnnotator sigById = cwSignatureAnnotatorMapper.getSigById(id);
+        //修改状态
+        cwSignatureAnnotatorMapper.updateStatusBySigId("0",sigById.getId());
+        //清空修改原因
+        cwSignatureAnnotatorMapper.setClearReason(sigById.getId());
+        //获取记录表中的json数据
+        CwProjectReport reportData = JSON.parseObject(sigById.getJsonData(), CwProjectReport.class);
+        reportData.setSignatureAnnotatorStatus("0");
+        //将报告表中的签字注师还原
+        reportMapper.updatesigStatusById(reportData);
+
+
+    }
 }

+ 7 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/controller/UserController.java

@@ -231,6 +231,13 @@ public class UserController {
             if (ObjectUtil.isNotEmpty(userDTO)){
                 if (ObjectUtil.isNotEmpty(userDTO.getCompanyDTO()) && ObjectUtil.isNotEmpty(userDTO.getOfficeDTO())) {
                     String id = UserUtils.getCurrentUserDTO().getCompanyDTO().getId();
+                    //判断当前登录人是否是综合管理公司人员
+                    if (id.equals("1680778353809350658")){
+
+                    }else {
+                        //如果不是综合管理公司人员
+                        queryWrapper.eq("a.company_id",id);
+                    }
                     if (StringUtils.isNotBlank(userDTO.getCertType())) {
                         //获取当前登陆人是否事中审公司人员
                         /*if(officeDTO.getParentIds().contains("1615171302381182978")){