sangwenwei vor 1 Jahr
Ursprung
Commit
b682a43bf8
20 geänderte Dateien mit 267 neuen und 50 gelöschten Zeilen
  1. 13 4
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/holiday/service/HolidayService.java
  2. 1 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/StaffHeirMapper.java
  3. 1 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/xml/StaffHeirMapper.xml
  4. 1 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/xml/StaffUserInfoMapper.xml
  5. 2 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/StaffDimissionService.java
  6. 1 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/StaffUserInfoService.java
  7. 2 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/inscription/mapper/InscriptionMapper.java
  8. 30 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/inscription/mapper/xml/InscriptionMapper.xml
  9. 12 7
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/inscription/service/InscriptionService.java
  10. 7 8
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/mapper/xml/JyProjectReportsSubmitMapper.xml
  11. 87 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/mapper/xml/ProjectListMapper.xml
  12. 1 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/reimbursement/mapper/xml/JyReimbursementInfoMapper.xml
  13. 2 2
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/useSeal/mapper/xml/SignetMapper.xml
  14. 16 7
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/useSeal/service/SignetService.java
  15. 1 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/mapper/JyWorkClientLinkmanMapper.java
  16. 45 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/mapper/xml/JyWorkContractInfoMapper.xml
  17. 1 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/service/JyWorkContractService.java
  18. 1 1
      jeeplus-modules/jeeplus-business/src/main/resources/freemarker/文印申请单.ftl
  19. 25 16
      jeeplus-modules/jeeplus-flowable/src/main/java/com/jeeplus/modules/flowable/listener/JyProjectArchiveListener.java
  20. 18 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/controller/UserController.java

+ 13 - 4
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/holiday/service/HolidayService.java

@@ -110,13 +110,14 @@ public class HolidayService {
         LocalDate endDate = LocalDate.of(now.getYear(), 12, 31);
         long days = ChronoUnit.DAYS.between(inTime, endDate);
         //计算今年一共有多少天
-        LocalDate endOfYear = now.withYear(now.getYear() + 1); // 获取下一年的第一天
-        long daysInYear = ChronoUnit.DAYS.between(now, endOfYear); // 计算当年一共有多少天
+        Calendar instance = Calendar.getInstance();
+        instance.setTime(new Date());
+        int daysInYear = instance.getActualMaximum(Calendar.DAY_OF_YEAR);
         //判断员工入职是否满10年
         long round=0;
         double days1=Double.parseDouble(holidayDTO.getDays());
         if (yearsPassed>=1 && yearsPassed<10){
-            //(当年距离入职时间剩余的天数/当年一共天数)*5
+            //(当年剩余的天数/当年一共天数)*5
             double yearDays=(double)days/daysInYear*5;
             round = Math.round(yearDays);
             if (days1>round){
@@ -149,9 +150,17 @@ public class HolidayService {
                     return "本次年假时间超出剩余年假天数,剩余年假"+surplus+"天";
                 }
             }
+        }else {
+            //若当年未休过年假,则计算剩余年假
+            holiday=round-days1;
+            //如果剩余年假天数小于等于0
+            if (holiday < 0){
+                return "已超出可休年假天数,可休年假天数"+holiday+"天";
+            }
         }
 
-       return "本次年假休息"+days1+"天";
+
+       return "本次年假休息"+days1+"天,剩余年假"+holiday+"天";
 
     }
 

+ 1 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/StaffHeirMapper.java

@@ -8,7 +8,7 @@ import org.apache.ibatis.annotations.Param;
 
 @Mapper
 public interface StaffHeirMapper extends BaseMapper<StaffHeir> {
-    void updateHeirStatusById(@Param("status") String status, @Param("id") String id);
+    void updateHeirStatusById(@Param("status") String status, @Param("id") String id,@Param("userId") String userId);
 
     StaffHeirDTO findHeirById(@Param("id") String id);
 }

+ 1 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/xml/StaffHeirMapper.xml

@@ -4,7 +4,7 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.jeeplus.business.humanResources.mapper.StaffHeirMapper">
     <update id="updateHeirStatusById">
-        update staff_heir set status = #{status} where id=#{id}
+        update staff_heir set status = #{status},update_by_id = #{userId} where id=#{id}
     </update>
 
     <select id="findHeirById" resultType="com.jeeplus.business.humanResources.service.dto.StaffHeirDTO">

+ 1 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/xml/StaffUserInfoMapper.xml

@@ -93,6 +93,7 @@
             a.bank_number,
             a.email,
             a.type,
+            a.remarks,
             a.fund_number,
             a.manager_office,
             so.name as officeName,

+ 2 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/StaffDimissionService.java

@@ -193,9 +193,10 @@ public class StaffDimissionService {
      * @param staffHeirDTO
      */
     public void updateHeirStatusById(StaffHeirDTO staffHeirDTO) {
-        staffHeirMapper.updateHeirStatusById(staffHeirDTO.getStatus(),staffHeirDTO.getId());
         //获取当前登录人信息
         UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
+        staffHeirMapper.updateHeirStatusById(staffHeirDTO.getStatus(),staffHeirDTO.getId(),userDTO.getId());
+
         //当人事审核同意后,将当前登录人所有未完成的项目中的项目组成员替换为交接人
         if (staffHeirDTO.getStatus().equals("5")){
             //获取离职人未归档的项目

+ 1 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/StaffUserInfoService.java

@@ -193,7 +193,6 @@ public class StaffUserInfoService {
         BeanUtils.copyProperties(staffUserInfoDTO,staffUserInfo);
         staffUserInfo.setPostId(postId);
         staffUserInfo.setRoleId(roleId);
-        staffUserInfo.setUserId(userDTO.getId());
         if (StringUtils.isNotBlank(staffUserInfoDTO.getId())){
             id=staffUserInfoDTO.getId();
             staffUserInfoMapper.updateById(staffUserInfo);
@@ -201,6 +200,7 @@ public class StaffUserInfoService {
             //获取id
             id = UUID.randomUUID().toString().replace("-", "");
             staffUserInfo.setId(id);
+            staffUserInfo.setUserId(userDTO.getId());
             staffUserInfoMapper.insert(staffUserInfo);
         }
         if (ObjectUtils.isNotEmpty(staffUserInfoDTO)){

+ 2 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/inscription/mapper/InscriptionMapper.java

@@ -19,4 +19,6 @@ public interface InscriptionMapper extends BaseMapper<Inscription> {
     InscriptionDTO findById(@Param("id") String id);
     @InterceptorIgnore(tenantLine = "true")
     void updateInfoById(@Param("inscription") Inscription inscription);
+    @InterceptorIgnore(tenantLine = "true")
+    InscriptionDTO findCheckerById(@Param("id") String id);
 }

+ 30 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/inscription/mapper/xml/InscriptionMapper.xml

@@ -44,6 +44,36 @@
             a.color_page,
             a.bookbinding_num,
             a.other_num,
+            a.content
+        from
+            jy_inscription a
+        left join sys_user su on a.create_by_id = su.id and su.del_flag = '0'
+        left join sys_user su1 on a.minister = su1.id and su.del_flag = '0'
+        left join sys_user su2 on a.examiner = su2.id and su.del_flag = '0'
+        left join sys_user su3 on a.approver = su3.id and su.del_flag = '0'
+        left join sys_office so on su.office_id = so.id and so.del_flag = '0'
+        LEFT JOIN act_ru_task art1 ON a.proc_ins_id = art1.PROC_INST_ID_
+        left join jy_project_record pr on a.project_id = pr.id
+        where a.id=#{id}
+    </select>
+
+    <select id="findCheckerById" resultType="com.jeeplus.business.inscription.service.dto.InscriptionDTO">
+        select
+            a.id,
+            a.create_by_id,
+            su.name as createName,
+            a.create_time,
+            so.name as officeName,
+            a.project_id,
+            pr.name as projectName,
+            art1.ID_ as task_id,
+            a.process_definition_id,
+            a.proc_ins_id,
+            a.status,
+            a.normal_page,
+            a.color_page,
+            a.bookbinding_num,
+            a.other_num,
             a.content,
             su1.name as minister,
             su2.name as examiner,

+ 12 - 7
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/inscription/service/InscriptionService.java

@@ -43,6 +43,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 
 import javax.annotation.Resource;
 import javax.swing.text.Document;
+import javax.xml.parsers.DocumentBuilder;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
@@ -120,7 +121,7 @@ public class InscriptionService {
      */
     public Integer getPageTotal( InscriptionDTO inscriptionDTO) throws IOException {
         Integer total=0;
-        String path="D:/localpath/";
+        String path="C:/localpath/";
         File dir = new File(path);
         if (!dir.exists()) {
             boolean result = dir.mkdirs();  // 使用 mkdirs,不仅可以创建最后一层目录,还会创建所有父目录。
@@ -183,9 +184,9 @@ public class InscriptionService {
             }catch (Exception e){
 
             }finally {
-                if(StringUtils.isNotBlank(path)){
+                if(StringUtils.isNotBlank(deleteFile)){
                     //根据路径创建文件对象
-                    File file = new File(path);
+                    File file = new File(deleteFile);
                     //路径是个文件且不为空时删除文件
                     if(file.isFile()&&file.exists()){
                         file.delete();
@@ -397,9 +398,13 @@ public class InscriptionService {
         Inscription inscription = new Inscription();
         inscription.setStatus(inscriptionDTO.getStatus());
         inscription.setId(inscriptionDTO.getId());
-        inscription.setMinister(inscriptionDTO.getMinister());//部长
-        inscription.setApprover(inscriptionDTO.getApprover());//批准人
-        inscription.setExaminer(inscriptionDTO.getExaminer());//核准人
+        if (StringUtils.isNotBlank(inscriptionDTO.getMinister())){
+            inscription.setMinister(inscriptionDTO.getMinister());//部长
+        }else if (StringUtils.isNotBlank(inscriptionDTO.getApprover())){
+            inscription.setApprover(inscriptionDTO.getApprover());//批准人
+        }else if (StringUtils.isNotBlank(inscriptionDTO.getExaminer())){
+            inscription.setExaminer(inscriptionDTO.getExaminer());//核准人
+        }
         inscriptionMapper.updateById(inscription);
     }
 
@@ -420,7 +425,7 @@ public class InscriptionService {
      */
     public Map getAuditInfoMap(Inscription inscription) throws ParseException {
         Map data = new HashMap();
-        InscriptionDTO inscriptionDTO = findById(inscription.getId());
+        InscriptionDTO inscriptionDTO = inscriptionMapper.findCheckerById(inscription.getId());
         //申请部门
         if (StringUtils.isNotBlank(inscriptionDTO.getOfficeName())){
             data.put("officeName",inscriptionDTO.getOfficeName());

+ 7 - 8
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/mapper/xml/JyProjectReportsSubmitMapper.xml

@@ -15,11 +15,10 @@
             a.remarks,
             a.proc_ins_id,
             a.process_definition_id,
-            a.first_submit_time,
             so.name as office,
             so.id,
             art.ID_ as task_id
-            from jy_project_reports_submit a
+            from jy_user_signet a
             left join sys_user su on a.create_by_id = su.id
             left join sys_office so on su.office_id=so.id
             left join act_ru_task art ON a.proc_ins_id = art.PROC_INST_ID_
@@ -28,7 +27,7 @@
 
 
     <update id="updateReportsSubmitById">
-        update jy_project_reports_submit set status = #{status} where id=#{id}
+        update jy_user_signet set status = #{status} where id=#{id}
     </update>
 
     <select id="findReportsSubmitListExccedTime" resultType="com.jeeplus.business.project.domain.JyProjectReportsSubmit">
@@ -49,15 +48,15 @@
             so.name as office,
             so.id,
             art.ID_ as task_id
-            from jy_project_reports_submit a
+            from jy_user_signet a
             left join sys_user su on a.create_by_id = su.id
             left join sys_office so on su.office_id=so.id
             left join act_ru_task art ON a.proc_ins_id = art.PROC_INST_ID_
-            where a.first_submit_time &lt; #{newDate} and a.status != '5'
+            where a.first_submit_time &lt; #{newDate} and a.status != '5' and a.type_status = '2'
     </select>
 
     <update id="updateExceedTimeStatus">
-        update jy_project_reports_submit set status = #{status},exceed_time_status=#{exceedTimeStatus} where id=#{id}
+        update jy_user_signet set status = #{status},exceed_time_status=#{exceedTimeStatus} where id=#{id}
     </update>
 
     <select id="findReportsSubmitListInTime" resultType="com.jeeplus.business.project.domain.JyProjectReportsSubmit">
@@ -78,11 +77,11 @@
             so.name as office,
             so.id,
             art.ID_ as task_id
-            from jy_project_reports_submit a
+            from jy_user_signet a
             left join sys_user su on a.create_by_id = su.id
             left join sys_office so on su.office_id=so.id
             left join act_ru_task art ON a.proc_ins_id = art.PROC_INST_ID_
-            where a.first_submit_time &gt;= #{newDate} and a.status != '5'
+            where a.first_submit_time &gt;= #{newDate} and a.status != '5' and a.type_status = '2'
     </select>
 
 </mapper>

+ 87 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/mapper/xml/ProjectListMapper.xml

@@ -157,6 +157,93 @@
             ORDER BY a.create_time DESC
     </select>
 
+    <select id="findPageList2" resultType="com.jeeplus.business.project.domain.JyProject">
+        SELECT
+        distinct
+           a.id,
+           a.create_by_id as create_by,
+           a.create_time,
+           a.update_by_id,
+           a.update_time,
+           a.del_flag,
+           a.name,
+           a.no,
+           a.contract_id,
+           a.contract_name,
+           a.client,
+           a.client_name,
+           a.status,
+           a.report_issuance,
+           a.contract_status,
+           a.project_place,
+           a.build_place,
+           a.project_overview,
+           a.special,
+           a.contract_project_no,
+           (select name from sys_user where id=a.project_leader) as projectLeader,
+           a.proc_ins_id,
+           a.process_definition_id,
+           b.name AS create_by_id,
+           art.ID_ as taskId,
+           wci.primary_linkman as primaryLinkman,
+           wci.contract_type_first as contractTypeFirst,
+           wci.no as contractNo,
+           wci.contract_amount as contractAmount,
+           pa1.status as firstInstanceStatus,
+           pa1.id as auditId1,
+           pa1.proc_ins_id as procInsId1,
+           pa1.exceed_time_status as exceedTimeStatus,
+           pa2.status as secondInstanceStatus,
+           pa2.id as auditId2,
+           pa2.proc_ins_id as procInsId2,
+           pa3.status as thirdInstanceStatus,
+           pa3.id as auditId3,
+           pa3.proc_ins_id as procInsId3,
+           art1.ID_ as task_id_audit1,
+           art2.ID_ as task_id_audit2,
+           art3.ID_ as task_id_audit3,
+           po.status as outInstance,
+           po.id as outInstanceId,
+           po.proc_ins_id as procInsIdOut,
+           art4.ID_ as task_id_out,
+           par.status as reviewStatus,
+           par.id as archiveId,
+           par.proc_ins_id as procInsIdArchive,
+           art5.ID_ as task_id_archive,
+           peq.status as eiaStatus,
+           peq.id as EiaId,
+           peq.proc_ins_id as procInsIdEia,
+           art6.ID_ as task_id_Eia,
+            bc.member_count
+        FROM
+            jy_project_record a
+            LEFT JOIN sys_user b ON a.create_by_id = b.id
+            LEFT JOIN sys_user c ON a.project_leader = c.id
+            LEFT JOIN jy_work_contract_info wci ON wci.id = a.contract_id and wci.del_flag = '0'
+            LEFT JOIN act_ru_task art ON a.proc_ins_id = art.PROC_INST_ID_
+            left join jy_project_audit pa1 on pa1.project_id = a.id and pa1.audit_level = '1' and pa1.del_flag = '0'
+            LEFT JOIN jy_project_audit pa2 ON pa2.project_id = a.id and pa2.audit_level = '2' and pa2.del_flag = '0'
+            LEFT JOIN jy_project_audit pa3 ON pa3.project_id = a.id and pa3.audit_level = '3' and pa3.del_flag = '0'
+            LEFT JOIN act_ru_task art1 ON pa1.proc_ins_id = art1.PROC_INST_ID_
+            LEFT JOIN act_ru_task art2 ON pa2.proc_ins_id = art2.PROC_INST_ID_
+            LEFT JOIN act_ru_task art3 ON pa3.proc_ins_id = art3.PROC_INST_ID_
+            left join jy_project_outinstance po on a.id=po.project_id
+            LEFT JOIN act_ru_task art4 ON po.proc_ins_id = art4.PROC_INST_ID_
+            left join jy_project_archive par on a.id=par.project_id
+            LEFT JOIN act_ru_task art5 ON par.proc_ins_id = art5.PROC_INST_ID_
+            left join jy_project_eia_qualification peq on a.id=peq.project_id
+            LEFT JOIN act_ru_task art6 ON peq.proc_ins_id = art6.PROC_INST_ID_
+            left join (select rec.id,count(cw_pm.id) as member_count
+                    from jy_project_record rec
+                    left join jy_project_members cw_pm on cw_pm.project_id = rec.id and cw_pm.del_flag = '0'
+                    group by rec.id
+                    ) bc on bc.id = a.id
+            left join jy_project_members pm on a.id = pm.project_id
+            left join sys_user sub on pm.user_id = sub.id
+            left join sys_user_manage_office sumo on sumo.office_id = sub.office_id
+            ${ew.customSqlSegment}
+            ORDER BY a.create_time DESC
+    </select>
 
     <select id="getById" resultType="com.jeeplus.business.project.domain.JyProject">
         SELECT

+ 1 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/reimbursement/mapper/xml/JyReimbursementInfoMapper.xml

@@ -84,6 +84,7 @@
 			left join sys_user us4 on us4.id = b4.user_id and us4.del_flag = 0
 
 			LEFT JOIN sys_user c ON a.create_by_id =  c.id
+			left join sys_user_manage_office sumo on sumo.office_id = c.office_id
 			left join sys_office o on o.id = c.office_id and o.del_flag = 0
 			LEFT JOIN act_ru_task d ON a.proc_ins_id = d.PROC_INST_ID_
 			${ew.customSqlSegment}

+ 2 - 2
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/useSeal/mapper/xml/SignetMapper.xml

@@ -100,7 +100,7 @@
             left join sys_user su on a.create_by_id = su.id
             left join sys_office so on su.office_id=so.id
             left join act_ru_task art ON a.proc_ins_id = art.PROC_INST_ID_
-            where a.update_time &lt; #{newDate} and a.status = '5'
+            where a.update_time &lt; #{newDate} and a.status = '5' and a.type_status = '1'
     </select>
 
     <select id="findSealInTime" resultType="com.jeeplus.business.useSeal.domain.Signet">
@@ -127,7 +127,7 @@
             left join sys_user su on a.create_by_id = su.id
             left join sys_office so on su.office_id=so.id
             left join act_ru_task art ON a.proc_ins_id = art.PROC_INST_ID_
-            where a.update_time &gt;= #{newDate} and a.status = '5'
+            where a.update_time &gt;= #{newDate} and a.status = '5' and a.type_status = '1'
     </select>
 
     <update id="updateStatusBySealId">

+ 16 - 7
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/useSeal/service/SignetService.java

@@ -227,13 +227,7 @@ public class SignetService {
         String projectName="";
         if (ObjectUtil.isNotEmpty(dto.getProjectList())){
             for (JyProject jyProject : dto.getProjectList()) {
-                //修改项目报告签发状态
-                JyProject project = new JyProject();
-                project.setReportIssuance(dto.getStatus());
-                project.setId(jyProject.getId());
-                jyProjectMapper.update(project,new QueryWrapper<JyProject>().lambda().eq(JyProject::getId,jyProject.getId()));
-
-                projectId=jyProject.getId()+",";
+                projectId=jyProject.getProjectId()+",";
                 projectName=jyProject.getName()+",";
             }
         }
@@ -253,9 +247,24 @@ public class SignetService {
                         //修改类型状态 1:报告  2:报批
                         if (dto.getTypes().get(1).equals(dictValue.getId()) && dictValue.getLabel().equals("报告签发")){
                             signet.setTypeStatus("1");
+                            for (JyProject jyProject : dto.getProjectList()) {
+                                //修改项目报告签发状态
+                                JyProject project = new JyProject();
+                                project.setReportIssuance(dto.getStatus());
+                                project.setId(jyProject.getProjectId());
+                                jyProjectMapper.update(project,new QueryWrapper<JyProject>().lambda().eq(JyProject::getId,jyProject.getId()));
+                            }
                         }
                         if (dto.getTypes().get(1).equals(dictValue.getId()) && dictValue.getLabel().equals("报批签发")){
                             signet.setTypeStatus("2");
+                            for (JyProject jyProject : dto.getProjectList()) {
+                                //修改项目报告签发状态
+                                JyProject project = new JyProject();
+                                project.setReportsSubmit(dto.getStatus());
+                                project.setId(jyProject.getProjectId());
+                                jyProjectMapper.update(project,new QueryWrapper<JyProject>().lambda().eq(JyProject::getId,jyProject.getId()));
+
+                            }
                         }
 
                     }

+ 1 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/mapper/JyWorkClientLinkmanMapper.java

@@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Param;
 
 @Mapper
 public interface JyWorkClientLinkmanMapper extends BaseMapper<JyWorkClientLinkman> {
+
     JyWorkClientLinkman selectByClientId(@Param("client") String client);
 
     JyWorkClientLinkman selectByClientName(@Param("clientName")String clientName);

+ 45 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/mapper/xml/JyWorkContractInfoMapper.xml

@@ -200,5 +200,50 @@
 	<select id="findType2" resultType="string">
 		SELECT dv.label from sys_dict_value dv LEFT JOIN sys_dict_type dt on dt.id=dv.dict_type_id where dv.`id`=#{contractType} and dt.type='jy_contract_type'
 	</select>
+    <select id="findPageList2" resultType="com.jeeplus.business.workContractInfo.domain.JyWorkContractInfo">
+		SELECT
+			a.id,
+			a.create_by_id,
+			a.create_time,
+			a.update_by_id,
+			a.update_time,
+			a.del_flag,
+			a.client_id,
+			a.client_name,
+			a.`no`,
+			a.`name`,
+			DATE_FORMAT(a.contract_date,'%Y-%m-%d') as contract_date,
+			a.effective_date,
+			a.closing_date,
+			a.contract_type as contractType,
+			a.contract_type_first,
+			a.contract_amount_type,
+			a.contract_amount,
+			a.contract_opposite,
+			a.contract_fee,
+			a.fees,
+			a.payment_describe,
+			a.contract_special,
+			a.remarks,
+			a.filed_by,
+			a.filed_date,
+			a.filed_no,
+			a.filed_remarks,
+			a.proc_ins_id,
+			a.process_definition_id,
+			a.status,
+			a.create_by_id as create_id,
+			a.filed_type,
+			a.primary_linkman,
+			c.name as createName,
+			art.ID_ as taskId
+		FROM
+			jy_work_contract_info a
+			LEFT JOIN sys_user c ON a.create_by_id = c.id
+			left join jy_work_client_info jy_ci on a.primary_linkman=jy_ci.name
+			left join act_ru_task art ON a.proc_ins_id = art.PROC_INST_ID_
+		${ew.customSqlSegment}
+		ORDER BY a.update_time DESC
+	</select>
 
 </mapper>

+ 1 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/service/JyWorkContractService.java

@@ -46,6 +46,7 @@ public class JyWorkContractService {
         if (StringUtils.isNotEmpty(workContractInfoDto.getId())) {
             JyWorkContractInfo info = jyWorkContractInfoMapper.selectById(workContractInfoDto.getId());
             if (info != null) {
+                workContractInfoDto.setContractTypes(null);
                 return update(workContractInfoDto);
             }
         }
@@ -92,7 +93,6 @@ public class JyWorkContractService {
                 queryWrapper.like("a.contract_type", contractTypeList.get(1));
             }
         }
-
         IPage<JyWorkContractInfo> pageList = jyWorkContractInfoMapper.findPageList(page, queryWrapper);
         pageList.getRecords().stream().forEach(i -> {
             // 合同归档

+ 1 - 1
jeeplus-modules/jeeplus-business/src/main/resources/freemarker/文印申请单.ftl

@@ -433,7 +433,7 @@
                         <w:sz w:val="28"/>
                         <w:sz-cs w:val="28"/>
                     </w:rPr>
-                    <w:t>     </w:t>
+                    <w:t>  </w:t>
                 </w:r>
                 <w:r wsp:rsidRPr="00491C20">
                     <w:rPr>

+ 25 - 16
jeeplus-modules/jeeplus-flowable/src/main/java/com/jeeplus/modules/flowable/listener/JyProjectArchiveListener.java

@@ -8,6 +8,7 @@ import com.jeeplus.flowable.model.ActRuTaskInfo;
 import com.jeeplus.flowable.model.Flow;
 import com.jeeplus.flowable.service.FlowTaskService;
 import com.jeeplus.flowable.service.MyNoticeService;
+import com.jeeplus.flowable.utils.StringUtils;
 import com.jeeplus.sys.feign.IOfficeApi;
 import com.jeeplus.sys.feign.IUserApi;
 import com.jeeplus.sys.service.dto.OfficeDTO;
@@ -73,35 +74,43 @@ public class JyProjectArchiveListener implements ExecutionListener {
                 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
                 UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getById(flow.getAssigneeId());
-                //获取人员信息
+                //获取嘉溢所有人员信息
                 List<UserDTO> allUserInfo = SpringUtil.getBean(IUserApi.class).findListByCompanyId(userDTO.getCompanyDTO().getId());
                 String finalTitleName = titleName;
                 //将项目信息抄送给分管领导
-                allUserInfo.stream().forEach(item->{
-                    String manageOfficeIds = item.getManageOfficeIds();
-                    String[] split = manageOfficeIds.split(",");
-                    //获取分管领导所分管的部门
-                    for (String s : split) {
-                        List<UserDTO> listByOfficeId = SpringUtil.getBean(IUserApi.class).findListByOfficeId(s);
-                        listByOfficeId.stream().forEach(da->{
-                            OfficeDTO office = SpringUtil.getBean(IOfficeApi.class).getOfficeById(da.getName());
-                            //判断分管部门与项目创建人所在的部门是否一致
-                            if (office.getName().equals(userDTO.getOfficeDTO().getName())){
+                for (UserDTO dto : allUserInfo) {
+                    if (StringUtils.isNotBlank(dto.getManageOfficeIds())){
+                        String manageOfficeIds = dto.getManageOfficeIds();
+                        if (manageOfficeIds.contains(",")){
+                            String[] split = manageOfficeIds.split(",");
+                            //获取分管领导所分管的部门
+                            for (String s : split) {
+                                //判断分管部门与项目创建人所在的部门是否一致
+                                if (s.equals(userDTO.getOfficeDTO().getId())) {
+                                    FlowCopy flowCopy = new FlowCopy();
+                                    flowCopy.setProcDefId(task.getProcDefId());
+                                    flowCopy.setProcInsName(finalTitleName);
+                                    flowCopy.setProcInsId(task.getProcInstId());
+                                    flowCopy.setUserId(dto.getId());
+                                    //将项目信息进行抄送
+                                    SpringUtil.getBean(FlowCopyService.class).save(flowCopy);
+                                }
+                            }
+                        }else {
+                            if (manageOfficeIds.equals(userDTO.getOfficeDTO().getId())) {
                                 FlowCopy flowCopy = new FlowCopy();
                                 flowCopy.setProcDefId(task.getProcDefId());
                                 flowCopy.setProcInsName(finalTitleName);
                                 flowCopy.setProcInsId(task.getProcInstId());
-                                flowCopy.setUserId(item.getId());
+                                flowCopy.setUserId(dto.getId());
                                 //将项目信息进行抄送
                                 SpringUtil.getBean(FlowCopyService.class).save(flowCopy);
                             }
-                        });
+                        }
 
                     }
 
-
-
-                });
+                }
 
 
             }

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

@@ -31,6 +31,7 @@ import com.jeeplus.sys.feign.IUserApi;
 import com.jeeplus.sys.service.OfficeService;
 import com.jeeplus.sys.service.UserService;
 import com.jeeplus.sys.service.dto.OfficeDTO;
+import com.jeeplus.sys.service.dto.PostDTO;
 import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.sys.service.mapstruct.UserWrapper;
 import com.jeeplus.sys.utils.DictUtils;
@@ -795,6 +796,23 @@ public class UserController {
         return UserUtils.getCurrentUserDTO().isAdmin();
     }
 
+    /**
+     * 判断当前登录人的岗位是否是人事
+     */
+    @ApiLog("判断当前登录人的岗位是否是人事")
+    @GetMapping("isRsb")
+    @ApiOperation(value = "判断当前登录人的岗位是否是人事")
+    public Boolean isRsb() {
+        UserDTO currentUserDTO = UserUtils.getCurrentUserDTO();
+        List<PostDTO> postDTOList = currentUserDTO.getPostDTOList();
+        for (PostDTO postDTO : postDTOList) {
+            if (postDTO.getCode().equals("rsb")){
+                return true;
+            }
+        }
+        return false;
+    }
+