From 56287f4037defafbd3a3bbebd1827fd20a8b91d4 Mon Sep 17 00:00:00 2001
From: heheng <heheng@123456>
Date: 星期一, 06 一月 2025 11:12:05 +0800
Subject: [PATCH] 项目拆单

---
 assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppAccessoryFileController.java     |    2 
 assess-admin/src/main/resources/application-dev.yml                                                 |    2 
 assess-system/src/main/java/com/gkhy/assess/system/domain/AssProject.java                           |    8 ++
 assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectServiceImpl.java          |   18 +++++
 assess-system/src/main/java/com/gkhy/assess/system/domain/vo/ProjectStaticVO.java                   |    9 +++
 assess-system/src/main/java/com/gkhy/assess/system/enums/SafetyCheckEnum.java                       |   32 ++++++++++
 assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProjectMapper.java                     |    2 
 assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssWorkNotificationServiceImpl.java |    9 ++
 assess-system/src/main/resources/mapper/AssProjectMapper.xml                                        |   38 ++++++++++++
 assess-system/src/main/java/com/gkhy/assess/system/enums/AccessoryFileTypeEnum.java                 |    3 
 10 files changed, 114 insertions(+), 9 deletions(-)

diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppAccessoryFileController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppAccessoryFileController.java
index 42e8cf7..08bf615 100644
--- a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppAccessoryFileController.java
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppAccessoryFileController.java
@@ -34,7 +34,7 @@
     @PostMapping("/uploadFile")
     @ApiImplicitParams({
             @ApiImplicitParam(paramType = "body", name = "projectId", dataType = "long", required = true, value = "项目id"),
-            @ApiImplicitParam(paramType = "body", name = "moduleType", dataType = "int", required = true, value = "上传模块code:1主要装置前的合影照片,2现场勘验照片,3企业陪同人员图片,4现场勘验视频,5现场勘验记录附件,6评审记录附件,7评价结论,8过程控制记录文档附件,9项目归档材料,10报备申请附件,11项目整改情况附件")
+            @ApiImplicitParam(paramType = "body", name = "moduleType", dataType = "int", required = true, value = "上传模块code:1主要装置前的合影照片,2现场勘验照片,3企业陪同人员图片,4现场勘验视频,5现场勘验记录附件,6评审记录附件,7评价结论,8过程控制记录文档附件,9项目归档材料,10报备申请附件,11项目整改情况附件,12从业报告附件")
     })
     public CommonResult uploadFile(@RequestParam @NotNull Long projectId,@RequestParam @NotNull Integer moduleType, @RequestParam MultipartFile file){
         return CommonResult.success(assAccessoryFileService.uploadFile(projectId,moduleType,file));
diff --git a/assess-admin/src/main/resources/application-dev.yml b/assess-admin/src/main/resources/application-dev.yml
index e579e73..d35069a 100644
--- a/assess-admin/src/main/resources/application-dev.yml
+++ b/assess-admin/src/main/resources/application-dev.yml
@@ -7,7 +7,7 @@
       master:
         url: jdbc:mysql://localhost:3306/smart_assess?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&serverTimezone=Asia/Shanghai&useSSL=false
         username: root
-        password: password
+        password: 123456
       slave:
         enabled: false
         url:
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssProject.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssProject.java
index 6639a88..1f204f0 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssProject.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssProject.java
@@ -199,4 +199,12 @@
     @ApiModelProperty("机构名称")
     @TableField(exist = false)
     private String agencyName;
+
+    @ApiModelProperty("是否检验检测 0否1是")
+    @TableField(exist = false)
+    private Integer safetyCheck;
+
+    @ApiModelProperty("未完成:1")
+    @TableField(exist = false)
+    private Integer unFinish;
 }
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/vo/ProjectStaticVO.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/vo/ProjectStaticVO.java
index 664c082..afb61ee 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/domain/vo/ProjectStaticVO.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/vo/ProjectStaticVO.java
@@ -28,4 +28,13 @@
 
     @ApiModelProperty("项目归档总数")
     private Integer archiveTotal;
+
+    @ApiModelProperty("未完成检验检测总数")
+    private Integer safetyCheckTotal;
+
+    @ApiModelProperty("未完成安全评价总数")
+    private Integer safetyTotal;
+
+    @ApiModelProperty("未完总数")
+    private Integer unFinishTotal;
 }
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/enums/AccessoryFileTypeEnum.java b/assess-system/src/main/java/com/gkhy/assess/system/enums/AccessoryFileTypeEnum.java
index 6e7a39e..a49f674 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/enums/AccessoryFileTypeEnum.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/enums/AccessoryFileTypeEnum.java
@@ -18,7 +18,8 @@
     PROCESS_ATTACHMENT(8, "过程控制记录文档附件"),
     PROJECT_MATERIAL(9, "项目归档材料"),
     FILING_APPLY(10, "报备申请附件"),
-    PROJECT_RECITIFICATON(11, "项目整改情况附件");
+    PROJECT_RECITIFICATON(11, "项目整改情况附件"),
+    EMPLOYMENT_NOTICE(12, "从业告知书附件");
 
     private final Integer code;
     private final String info;
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/enums/SafetyCheckEnum.java b/assess-system/src/main/java/com/gkhy/assess/system/enums/SafetyCheckEnum.java
new file mode 100644
index 0000000..2dac7f1
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/enums/SafetyCheckEnum.java
@@ -0,0 +1,32 @@
+package com.gkhy.assess.system.enums;
+
+/**
+ * 项目五大阶段
+ *
+ */
+public enum SafetyCheckEnum
+{
+    UN_CHECK(0, "非检验检测"),
+    CHECKED(1, "检验检测");
+
+    private final Integer code;
+    private final String info;
+
+    SafetyCheckEnum(Integer code, String info)
+    {
+        this.code = code;
+        this.info = info;
+    }
+
+    public Integer getCode()
+    {
+        return code;
+    }
+
+    public String getInfo()
+    {
+        return info;
+    }
+
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProjectMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProjectMapper.java
index 890aac0..6456c1a 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProjectMapper.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProjectMapper.java
@@ -39,7 +39,7 @@
      * @param name
      * @return
      */
-    AssProject getProjectByName(@Param("name")String name,@Param("agencyId")Long agencyId);
+    AssProject getProjectByName(@Param("name")String name,@Param("agencyId")Long agencyId,@Param("safetyCheck")Integer safetyCheck);
 
     /**
      * 获取项目状态
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectServiceImpl.java
index b524d6d..62fb995 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectServiceImpl.java
@@ -14,6 +14,7 @@
 import com.gkhy.assess.system.domain.vo.ProjectStaticVO;
 import com.gkhy.assess.system.enums.ProgressPhaseEnum;
 import com.gkhy.assess.system.enums.ReportProgressEnum;
+import com.gkhy.assess.system.enums.SafetyCheckEnum;
 import com.gkhy.assess.system.mapper.AssPlanPersonMapper;
 import com.gkhy.assess.system.mapper.AssProjectMapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -94,6 +95,7 @@
             throw new ApiException("用户机构id为空");
         }
         project.setAgencyId(user.getAgencyId());
+        project.setSafetyCheck(project.getEstimateType() == 33 ? SafetyCheckEnum.CHECKED.getCode() :SafetyCheckEnum.UN_CHECK.getCode());
         if(!checkNameUnique(project)){
             throw new ApiException("项目名已存在");
         }
@@ -155,7 +157,7 @@
     @Override
     public boolean checkNameUnique(AssProject project) {
         Long projectId = project.getId()==null? -1L : project.getId();
-        AssProject pro = baseMapper.getProjectByName(project.getName(),project.getAgencyId());
+        AssProject pro = baseMapper.getProjectByName(project.getName(),project.getAgencyId(),project.getSafetyCheck());
         if (pro!=null && pro.getId().longValue() != projectId.longValue())
         {
             return false;
@@ -243,13 +245,25 @@
         project.setPhase(ProgressPhaseEnum.ARCHIVE.getCode());
         Integer archiveTotal=baseMapper.getProjectCount(project);
 
+        project.setPhase(null);
+
+        project.setUnFinish(1);
+        project.setSafetyCheck(SafetyCheckEnum.CHECKED.getCode());
+        Integer safetyCheckTotal=baseMapper.getProjectCount(project);
+
+        project.setSafetyCheck(SafetyCheckEnum.UN_CHECK.getCode());
+        Integer safetyTotal=baseMapper.getProjectCount(project);
+
         ProjectStaticVO projectStaticVO=new ProjectStaticVO()
                 .setProjectTotal(projectTotal)
                 .setRiskTotal(riskTotal)
                 .setInvestigationTotal(investigationTotal)
                 .setReviewTotal(reviewTotal)
                 .setReportTotal(reportTotal)
-                .setArchiveTotal(archiveTotal);
+                .setArchiveTotal(archiveTotal)
+                .setSafetyCheckTotal(safetyCheckTotal)
+                .setSafetyTotal(safetyTotal)
+                .setUnFinishTotal(safetyTotal+safetyCheckTotal);
         return projectStaticVO;
     }
 
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssWorkNotificationServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssWorkNotificationServiceImpl.java
index b422bac..13d47b4 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssWorkNotificationServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssWorkNotificationServiceImpl.java
@@ -3,8 +3,10 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gkhy.assess.common.exception.ApiException;
 import com.gkhy.assess.system.domain.AssWorkNotification;
+import com.gkhy.assess.system.enums.AccessoryFileTypeEnum;
 import com.gkhy.assess.system.enums.ReportProgressEnum;
 import com.gkhy.assess.system.mapper.AssWorkNotificationMapper;
+import com.gkhy.assess.system.service.AssAccessoryFileService;
 import com.gkhy.assess.system.service.AssProjectService;
 import com.gkhy.assess.system.service.AssWorkNotificationService;
 import com.gkhy.assess.system.utils.ShiroUtils;
@@ -24,13 +26,18 @@
 public class AssWorkNotificationServiceImpl extends ServiceImpl<AssWorkNotificationMapper, AssWorkNotification> implements AssWorkNotificationService {
     @Autowired
     private AssProjectService projectService;
-
+    @Autowired
+    private AssAccessoryFileService accessoryFileService;
     @Override
     @Transactional(rollbackFor = RuntimeException.class)
     public int addWorkNotification(AssWorkNotification workNotification) {
         Long projectId=workNotification.getProjectId();
         projectService.checkUserAllowed(projectId);
         checkWorkNotificationCount(projectId);
+        Integer fileCount=accessoryFileService.getAccessoryFileCountByProjectId(projectId,null, AccessoryFileTypeEnum.EMPLOYMENT_NOTICE.getCode());
+        if(fileCount==0){
+            throw new ApiException("未上传从业告知书");
+        }
         //校验项目状态
         projectService.checkReportProgress(projectId, ReportProgressEnum.ESTIMATE_PLAN);
         workNotification.setCreateBy(ShiroUtils.getSysUser().getUsername());
diff --git a/assess-system/src/main/resources/mapper/AssProjectMapper.xml b/assess-system/src/main/resources/mapper/AssProjectMapper.xml
index 941e57a..4d286f8 100644
--- a/assess-system/src/main/resources/mapper/AssProjectMapper.xml
+++ b/assess-system/src/main/resources/mapper/AssProjectMapper.xml
@@ -78,6 +78,18 @@
         </if>
         <where>
             and p.del_flag = 0
+            <if test="safetyCheck != null and safetyCheck == 0">
+                and p.estimate_type != 33
+            </if>
+            <if test="safetyCheck != null and safetyCheck == 1">
+                and p.estimate_type = 33
+            </if>
+            <if test="unFinish != null and unFinish == 1">
+                and p.report_progress != 14
+            </if>
+            <if test="agencyName != null and agencyName != ''">
+                and a.name=#{agencyName}
+            </if>
             <if test="name != null and name != ''">
                 AND p.name like concat('%', #{name}, '%')
             </if>
@@ -131,7 +143,14 @@
 
     <select id="getProjectByName" resultType="com.gkhy.assess.system.domain.AssProject">
         select id,name from ass_project
-        where name=#{name} and agency_id=#{agencyId} and del_flag=0 limit 1
+        where name=#{name} and agency_id=#{agencyId} and del_flag=0
+        <if test="safetyCheck != null and safetyCheck == 0">
+            and estimate_type != 33
+        </if>
+        <if test="safetyCheck != null and safetyCheck == 1">
+            and estimate_type = 33
+        </if>
+            limit 1
     </select>
 
     <select id="getReportProgress" resultType="java.lang.Integer">
@@ -176,15 +195,30 @@
     </select>
 
     <select id="getProjectCount" resultType="java.lang.Integer">
-        select count(distinct  p.id) from ass_project p
+        select Ifnull(count(distinct  p.id),0) from ass_project p
         <if test="params.lostMaterial != null">
             left join ass_project_material m on m.project_id=p.id
         </if>
+        <if test="agencyName != null and agencyName != ''">
+            left join sys_agency a on a.id=p.agency_id
+        </if>
         <where>
             and p.del_flag=0
+            <if test="safetyCheck != null and safetyCheck == 0">
+                and p.estimate_type != 33
+            </if>
+            <if test="safetyCheck != null and safetyCheck == 1">
+                and p.estimate_type = 33
+            </if>
+            <if test="unFinish != null and unFinish == 1">
+                and p.report_progress != 14
+            </if>
             <if test="agencyId!=null and agencyId!=''">
                 and p.agency_id=#{agencyId}
             </if>
+            <if test="agencyName != null and agencyName != ''">
+                and a.name=#{agencyName}
+            </if>
             <if test="name != null and name != ''">
                 AND p.name like concat('%', #{name}, '%')
             </if>

--
Gitblit v1.9.2