瀏覽代碼

提交隐患检查单

lin.liu 2 周之前
父節點
當前提交
570b04943e

+ 5 - 1
secure-producting-business/src/main/java/com/customs/cq/datacenter/business/entity/request/checkrecord/ReqCreateCheckRecord.java

@@ -24,7 +24,7 @@ package com.customs.cq.datacenter.business.entity.request.checkrecord;
 
 import com.customs.cq.datacenter.business.entity.request.checkrecorditem.ReqCreateCheckRecordItem;
 import lombok.Data;
-import java.time.LocalDate;
+
 import java.util.List;
 
 /**
@@ -34,6 +34,10 @@ import java.util.List;
  */
 @Data
 public class ReqCreateCheckRecord {
+	/**
+	 * 所属网格
+	 */
+	private Long gridId;
 	/**
 	 * 所属检查表
 	 */

+ 105 - 10
secure-producting-business/src/main/java/com/customs/cq/datacenter/business/service/CheckRecordService.java

@@ -23,23 +23,38 @@
 package com.customs.cq.datacenter.business.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.customs.cq.datacenter.common.*;
+import com.baomidou.mybatisplus.core.toolkit.Sequence;
+import com.customs.cq.datacenter.business.domain.CheckRecordPO;
+import com.customs.cq.datacenter.business.domain.DangerCheckFormPO;
+import com.customs.cq.datacenter.business.domain.GridInfoPO;
+import com.customs.cq.datacenter.business.domain.vo.CheckRecordVO;
+import com.customs.cq.datacenter.business.entity.request.checkrecord.ReqCreateCheckRecord;
+import com.customs.cq.datacenter.business.entity.request.checkrecord.ReqModifyCheckRecord;
+import com.customs.cq.datacenter.business.entity.request.checkrecorditem.ReqCreateCheckRecordItem;
+import com.customs.cq.datacenter.business.entity.search.SearchCheckRecord;
+import com.customs.cq.datacenter.business.mapper.impl.CheckRecordMapperImpl;
+import com.customs.cq.datacenter.common.ExecutedResult;
+import com.customs.cq.datacenter.common.PagerResult;
+import com.customs.cq.datacenter.common.constant.Constants;
+import com.customs.cq.datacenter.common.core.domain.model.LoginUser;
+import com.customs.cq.datacenter.common.core.service.BasicService;
 import com.customs.cq.datacenter.common.enums.ECheckFormStatus;
+import com.customs.cq.datacenter.common.enums.ECheckResult;
+import com.customs.cq.datacenter.common.enums.EResultCode;
 import com.customs.cq.datacenter.common.enums.EYesOrNo;
+import com.customs.cq.datacenter.common.exception.ServiceException;
+import com.customs.cq.datacenter.common.helper.LoginHelper;
 import com.customs.cq.datacenter.common.model.Tuple;
 import com.customs.cq.datacenter.common.utils.*;
-import com.customs.cq.datacenter.common.core.service.BasicService;
+import com.customs.cq.datacenter.system.mapper.SysDictDataMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
-import com.customs.cq.datacenter.business.mapper.impl.CheckRecordMapperImpl;
-import com.customs.cq.datacenter.business.entity.request.checkrecord.ReqCreateCheckRecord;
-import com.customs.cq.datacenter.business.entity.request.checkrecord.ReqModifyCheckRecord;
-import com.customs.cq.datacenter.business.entity.search.SearchCheckRecord;
-import com.customs.cq.datacenter.business.domain.CheckRecordPO;
-import com.customs.cq.datacenter.business.domain.vo.CheckRecordVO;
 
 /**
  * 隐患检查记录
@@ -50,21 +65,101 @@ import com.customs.cq.datacenter.business.domain.vo.CheckRecordVO;
 public class CheckRecordService extends BasicService {
     @Autowired
     private CheckRecordMapperImpl dao;
+    @Autowired
+    private SysDictDataMapper dictDataMapper;
+
+    @Autowired
+    private GridInfoService gridInfoService;
+    @Autowired
+    private DangerCheckFormService dangerCheckFormService;
+
+
 
     public ExecutedResult<Long> create(ReqCreateCheckRecord request) {
+        // 检验网格
+        GridInfoPO grid = gridInfoService.check4IdExc(request.getGridId());
+        // 校验隐患检查单
+        DangerCheckFormPO form = dangerCheckFormService.check4IdExc(request.getCheckFormId());
+        // 数据字典 - 关区代码
+        Map<String, String> mapDicData = dictDataMapper.map4Type("sys_customs_code");
+        if (mapDicData.containsKey(request.getCustoms())) {
+            return ExecutedResult.failed("关区代码不存在." + request.getCustoms());
+        }
+
+        // 登录信息
+        LoginUser loginUser = LoginHelper.getLoginUser();
+        if (Objects.isNull(loginUser)) {
+            throw new ServiceException("尚未登陆.", EResultCode.UNAUTHORIZED.getCode());
+        }
+
+        Long now = LocalDateTimeUtil.nowTimeStamp();
+
         // 转换po
         CheckRecordPO item = CopierUtil.mapTo(request, CheckRecordPO.class);
         // 设置主键
-        item.setId(SnowFlakeUtil.getId());
+        item.setId(new Sequence(null).nextId());
+        // 检查单号
+        item.setCheckFormNo("CK" + LocalDateTimeUtil.toFormatString(LocalDateTime.now(), "yyyyMMddHHmmssSSS") + RandVerifyCode.complexCode(6));
+        // 检查表名称
+        item.setCheckFormName(form.getName());
+        // 所属部门
+        item.setDepartment(loginUser.getDeptId().toString());
+        // 部门名称
+        item.setDepartmentName(loginUser.getDeptName());
+        // 关区名称
+        item.setCustomsName(mapDicData.get(request.getCustoms()));
+        // 检查时间
+        item.setCheckTime(LocalDateTimeUtil.getTimeStamp(request.getCheckTime(), Constants.STR_DATE).getTime());
+        // 网格类型
+        item.setGridCategory(grid.getGridCategory());
+        // 隐患分类
+        item.setDangerCategory(grid.getDangerCategory());
+        // 附件列表
+        item.setAttachmentList("");
+        if (ListUtil.isNotNullOrEmpty(request.getListAttachment())) {
+            item.setAttachmentList(StringUtil.join(request.getListAttachment()));
+        }
+        Integer hasRectifyPlan = EYesOrNo.NO.getValue();
+        Long rectifyDeadline = 0L;
+        // 是否有隐患
+        item.setHasDanger(EYesOrNo.NO.getValue());
+        if (request.getListItem().stream().anyMatch(c -> Objects.equals(ECheckResult.HAS_DANGER.getValue(), c.getCheckResult()))) {
+            item.setHasDanger(EYesOrNo.YES.getValue());
+
+            hasRectifyPlan = EYesOrNo.YES.getValue();
+            for (ReqCreateCheckRecordItem checkItem : request.getListItem()) {
+                if (Objects.equals(ECheckResult.HAS_DANGER.getValue(), checkItem.getCheckResult())) {
+                    if (StringUtil.isNullOrEmpty(checkItem.getRectifyPlan())) {
+                        hasRectifyPlan = EYesOrNo.NO.getValue();
+                        break;
+                    } else {
+                        if (checkItem.getRectifyDeadline().compareTo(rectifyDeadline) > 0) {
+                            rectifyDeadline = checkItem.getRectifyDeadline();
+                        }
+                    }
+                }
+            }
+        }
+        // 整改措施状态
+        item.setHasRectifyPlan(hasRectifyPlan);
+        item.setRectifySubmitTime(0L);
+        item.setRectifyDeadline(0L);
+        if (Objects.equals(hasRectifyPlan, EYesOrNo.YES.getValue())) {
+            item.setRectifySubmitTime(now);
+            item.setRectifyDeadline(rectifyDeadline);
+        }
         // 设置状态
         item.setStatus(ECheckFormStatus.STAGING.getValue());
         if (Objects.equals(request.getIsSubmit(), EYesOrNo.YES.getValue())) {
             item.setStatus(ECheckFormStatus.SUBMITTED.getValue());
         }
         // 设置记录创建时间
-        item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
+        item.setCreateTime(now);
         // 是否删除(逻辑删除)初始值
         item.setIsDelete(EYesOrNo.NO.getValue());
+        // 创建人信息
+        item.setCreateBy(loginUser.getUserId().toString());
+        item.setCreateByName(loginUser.getUsername());
 
         int result = this.dao.insert(item);
         if (result != 1) {

+ 9 - 0
secure-producting-business/src/main/java/com/customs/cq/datacenter/business/service/DangerCheckFormService.java

@@ -38,8 +38,10 @@ import com.customs.cq.datacenter.common.ExecutedResult;
 import com.customs.cq.datacenter.common.PagerResult;
 import com.customs.cq.datacenter.common.core.domain.model.LoginUser;
 import com.customs.cq.datacenter.common.core.service.BasicService;
+import com.customs.cq.datacenter.common.enums.EResultCode;
 import com.customs.cq.datacenter.common.enums.EState;
 import com.customs.cq.datacenter.common.enums.EYesOrNo;
+import com.customs.cq.datacenter.common.exception.ServiceException;
 import com.customs.cq.datacenter.common.helper.LoginHelper;
 import com.customs.cq.datacenter.common.model.Tuple;
 import com.customs.cq.datacenter.common.utils.*;
@@ -308,4 +310,11 @@ public class DangerCheckFormService extends BasicService {
         }
         return ExecutedResult.success(exists);
     }
+    protected DangerCheckFormPO check4IdExc(Long id) {
+        ExecutedResult<DangerCheckFormPO> check = this.check4Id(id);
+        if (check.isFailed()) {
+            throw new ServiceException(check.getMsg(), EResultCode.NOT_FOUND.getCode());
+        }
+        return check.getData();
+    }
 }

+ 9 - 0
secure-producting-business/src/main/java/com/customs/cq/datacenter/business/service/GridInfoService.java

@@ -42,8 +42,10 @@ import com.customs.cq.datacenter.common.PagerResult;
 import com.customs.cq.datacenter.common.core.domain.entity.SysDept;
 import com.customs.cq.datacenter.common.core.domain.model.LoginUser;
 import com.customs.cq.datacenter.common.core.service.BasicService;
+import com.customs.cq.datacenter.common.enums.EResultCode;
 import com.customs.cq.datacenter.common.enums.EState;
 import com.customs.cq.datacenter.common.enums.EYesOrNo;
+import com.customs.cq.datacenter.common.exception.ServiceException;
 import com.customs.cq.datacenter.common.helper.LoginHelper;
 import com.customs.cq.datacenter.common.model.NameValueDto;
 import com.customs.cq.datacenter.common.model.Tuple;
@@ -315,6 +317,13 @@ public class GridInfoService extends BasicService {
         }
         return ExecutedResult.success(exists);
     }
+    protected GridInfoPO check4IdExc(Long id) {
+        ExecutedResult<GridInfoPO> check = this.check4Id(id);
+        if (check.isFailed()) {
+            throw new ServiceException(check.getMsg(), EResultCode.NOT_FOUND.getCode());
+        }
+        return check.getData();
+    }
 
     // 设置网格员
     public ExecutedResult<String> setListPerson(ReqSetListPerson request) {

+ 67 - 0
secure-producting-common/src/main/java/com/customs/cq/datacenter/common/enums/ECheckResult.java

@@ -0,0 +1,67 @@
+package com.customs.cq.datacenter.common.enums;
+
+import java.util.Arrays;
+import java.util.Objects;
+
+public enum ECheckResult {
+    /**
+     * 无隐患=1,
+     */
+    NONE("无隐患", 1),
+    /**
+     * 有隐患=2,
+     */
+    HAS_DANGER("有隐患", 2),
+    /**
+     * 不适用=99,
+     */
+    INAPPLICABLE("不适用", 99),
+    ;
+
+    /**
+     * 枚举描述
+     */
+    private String desc;
+    /**
+     * 枚举值
+     */
+    private Integer value;
+
+    public Integer getValue() {
+        return value;
+    }
+    public String getDesc() {
+        return desc;
+    }
+
+    /**
+     * 构造方法
+     * @param desc 枚举描述
+     * @param value 枚举值
+     */
+    ECheckResult(String desc, Integer value) {
+        this.desc = desc;
+        this.value = value;
+    }
+
+    /**
+     * 根据值获取枚举
+     *
+     * @param value 枚举值
+     * @return
+     */
+    public static ECheckResult getByValue(Integer value) {
+        return Arrays.stream(ECheckResult.values())
+                .filter(e -> Objects.equals(e.getValue(), value))
+                .findAny()
+                .orElse(null);
+    }
+
+    @Override
+    public String toString() {
+        return "ECheckResult{" +
+                "desc='" + desc + '\'' +
+                ", value=" + value +
+                '}';
+    }
+}

+ 7 - 0
secure-producting-system/src/main/java/com/customs/cq/datacenter/system/mapper/SysDictDataMapper.java

@@ -6,6 +6,8 @@ import com.customs.cq.datacenter.common.core.domain.entity.SysDictData;
 import com.customs.cq.datacenter.common.core.mapper.BaseMapperPlus;
 
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 字典表 数据层
@@ -21,4 +23,9 @@ public interface SysDictDataMapper extends BaseMapperPlus<SysDictDataMapper, Sys
                 .eq(SysDictData::getDictType, dictType)
                 .orderByAsc(SysDictData::getDictSort));
     }
+
+    default Map<String, String> map4Type(String dictType) {
+        List<SysDictData> list = this.selectDictDataByType(dictType);
+        return list.stream().collect(Collectors.toMap(SysDictData::getDictValue, SysDictData::getDictLabel));
+    }
 }

+ 6 - 0
secure-producting-system/src/main/java/com/customs/cq/datacenter/system/service/impl/SysDictDataServiceImpl.java

@@ -1,6 +1,8 @@
 package com.customs.cq.datacenter.system.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.customs.cq.datacenter.system.mapper.SysDictDataMapper;
 import com.customs.cq.datacenter.system.service.ISysDictDataService;
@@ -126,4 +128,8 @@ public class SysDictDataServiceImpl implements ISysDictDataService {
         }
         throw new ServiceException("操作失败");
     }
+
+    public List<SysDictData> list4Type(String dicType) {
+        return baseMapper.selectDictDataByType(dicType);
+    }
 }