Переглянути джерело

Merge remote-tracking branch 'origin/master'

lizhenhao 2 роки тому
батько
коміт
c04d1c2e2d

+ 7 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/domain/CwProjectReportData.java

@@ -388,4 +388,11 @@ public class CwProjectReportData extends BaseDTO {
      * 财务-报告编号
      */
     private String reportReviewNo;
+
+    /**
+     * 下一个节点审核人信息
+     */
+    List<ReviewUser> reviewBys;
+
+    private String reviewBy;
 }

+ 2 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/domain/CwProjectReview.java

@@ -120,4 +120,6 @@ public class CwProjectReview extends BaseEntity {
      * 计算机文号
      */
     private String computerNo;
+
+    private String reviewBy;
 }

+ 16 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/domain/ReviewUser.java

@@ -0,0 +1,16 @@
+package com.jeeplus.test.cw.projectReport.domain;
+
+import lombok.Data;
+
+/**
+ * 下一个节点指定人
+ * @author: 王强
+ * @create: 2022-12-14 16:43
+ **/
+@Data
+public class ReviewUser {
+
+    private String name;
+    private String id;
+    private String sysUserId;
+}

+ 7 - 4
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/CwProjectReportMapper.java

@@ -8,10 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.test.cw.projectRecords.domain.CwProjectRecords;
 import com.jeeplus.test.cw.projectRecords.service.dto.CwProjectRecordsDTO;
-import com.jeeplus.test.cw.projectReport.domain.CwProjectReport;
-import com.jeeplus.test.cw.projectReport.domain.CwProjectReportData;
-import com.jeeplus.test.cw.projectReport.domain.CwProjectReportFile;
-import com.jeeplus.test.cw.projectReport.domain.CwProjectReportSignature;
+import com.jeeplus.test.cw.projectReport.domain.*;
 import com.jeeplus.test.cw.workClientInfo.domain.CwWorkClientBase;
 import com.jeeplus.test.cw.workClientInfo.service.dto.CwWorkClientBaseDTO;
 import com.jeeplus.test.oss.domain.WorkAttachment;
@@ -123,4 +120,10 @@ public interface CwProjectReportMapper extends BaseMapper<CwProjectReport> {
     List<String> getIdByContractId(@Param("id") String id);
 
     List<CwProjectReport> getByIds(@Param(Constants.WRAPPER) QueryWrapper<CwProjectReport> queryWrapper);
+
+    /**
+     * 根据报告类型查询指定下一个审核人信息
+     * @return
+     */
+    List<ReviewUser> getReviewByS(String parentId);
 }

+ 3 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/xml/CwProjectReportMapper.xml

@@ -439,4 +439,7 @@
         left join sys_user su on cw_pr.create_by = su.id and su.del_flag = '0'
         ${ew.customSqlSegment}
     </select>
+    <select id="getReviewByS" resultType="com.jeeplus.test.cw.projectReport.domain.ReviewUser">
+        select name,id,sys_user_id from cw_project_report_review_user where parent_id = #{parentId} ORDER BY name
+    </select>
 </mapper>

+ 10 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/service/CwProjectReportService.java

@@ -571,12 +571,21 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
                 reportData.setRemark3(review.getRemark3());
                 reportData.setComputerNo(review.getComputerNo());
                 reportData.setReportReviewNo(review.getReportReviewNo());
+                reportData.setReviewBy(review.getReviewBy());
                 //将一级复核等填入数据查出
                 List<CwProofreadDetail> details = detailMapper.findByReportInfoId(review.getId());
                 if (null != details) {
                     reportData.setDetails(details);
                 }
             }
+            //根据报告类型查询下一节点用户
+            List<ReviewUser> stringList = new ArrayList<>();
+            if (reportData.getReportType().equals("1")) {
+                stringList = reportMapper.getReviewByS("1");
+            } else {
+                stringList = reportMapper.getReviewByS("2");
+            }
+            reportData.setReviewBys(stringList);
         } else {
             //传来的是复核表的id
             CwProjectReview review = reviewMapper.selectById(id);
@@ -690,6 +699,7 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
                     reportData.setRemark2(review.getRemark2());
                     reportData.setRemark3(review.getRemark3());
                     reportData.setComputerNo(review.getComputerNo());
+                    reportData.setReviewBy(review.getReviewBy());
 
                     //将一级复核等填入数据查出
                     List<CwProofreadDetail> details = detailMapper.findByReportInfoId(review.getId());

+ 23 - 0
jeeplus-plugins/jeeplus-flowable/src/main/java/com/jeeplus/flowable/common/handler/ExtUserTaskActivityBehavior.java

@@ -132,6 +132,29 @@ public class ExtUserTaskActivityBehavior extends UserTaskActivityBehavior {
                                 candidateUserIds.add(map.get ("id").toString ());
                             }
                         }
+                        //如果字符串中包含 "cwCurrentUserSql:" 则进行如下代码替换和处理
+                        if(flowAssignee.getValue ().contains("cwCurrentUserSql:")){
+                            //对应sql为:select su.* from sys_user_role a left join sys_role sr on sr.id = a.role_id left join sys_user su on su.id = a.user_id left join sys_office so on so.id = su.office_id where sr.en_name= 'bmzr' and so.id = (select office_id from sys_user where id = @currentUser.id)
+                            //用于查询当前登录人的部门主任人员信息
+                            UserDTO currentUserDTO = UserUtils.getCurrentUserDTO();
+                            String sql = flowAssignee.getValue ();
+                            if(sql.contains("@currentUser.id")){
+                                //将标志进行去除
+                                sql = sql.replaceAll("cwCurrentUserSql:","");
+                                //将判断条件进行替换
+                                sql = sql.replaceAll("@currentUser.id","'" + currentUserDTO.getId() + "'");
+                            }
+                            if(sql.contains("@currentUser.officeDTO.name")){
+                                //将标志进行去除
+                                sql = sql.replaceAll("cwCurrentUserSql:","");
+                                //将判断条件进行替换
+                                sql = sql.replaceAll("@currentUser.officeDTO.name","'" + currentUserDTO.getOfficeDTO().getName() + "'");
+                            }
+                            List<Map<String, Object>> maps = SpringUtil.getBean(JdbcTemplate.class).queryForList(sql);
+                            for (Map<String, Object> map : maps) {
+                                candidateUserIds.add(map.get ("id").toString ());
+                            }
+                        }
 
                         break;
                 }

+ 23 - 0
jeeplus-plugins/jeeplus-flowable/src/main/java/com/jeeplus/flowable/common/handler/MutiInstanceHandler.java

@@ -113,6 +113,29 @@ public class MutiInstanceHandler {
                                 candidateUserIds.add(map.get ("id").toString ());
                             }
                         }
+                        //如果字符串中包含 "cwCurrentUserSql:" 则进行如下代码替换和处理
+                        if(flowAssignee.getValue ().contains("cwCurrentUserSql:")){
+                            //对应sql为:select su.* from sys_user_role a left join sys_role sr on sr.id = a.role_id left join sys_user su on su.id = a.user_id left join sys_office so on so.id = su.office_id where sr.en_name= 'bmzr' and so.id = (select office_id from sys_user where id = @currentUser.id)
+                            //用于查询当前登录人的部门主任人员信息
+                            UserDTO currentUserDTO = UserUtils.getCurrentUserDTO();
+                            String sql = flowAssignee.getValue ();
+                            if(sql.contains("@currentUser.id")){
+                                //将标志进行去除
+                                sql = sql.replaceAll("cwCurrentUserSql:","");
+                                //将判断条件进行替换
+                                sql = sql.replaceAll("@currentUser.id","'" + currentUserDTO.getId() + "'");
+                            }
+                            if(sql.contains("@currentUser.officeDTO.name")){
+                                //将标志进行去除
+                                sql = sql.replaceAll("cwCurrentUserSql:","");
+                                //将判断条件进行替换
+                                sql = sql.replaceAll("@currentUser.officeDTO.name","'" + currentUserDTO.getOfficeDTO().getName() + "'");
+                            }
+                            List<Map<String, Object>> maps = SpringUtil.getBean(JdbcTemplate.class).queryForList(sql);
+                            for (Map<String, Object> map : maps) {
+                                candidateUserIds.add(map.get ("id").toString ());
+                            }
+                        }
                         break;
                 }
             }