|
@@ -23,22 +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;
|
|
|
|
|
|
/**
|
|
|
* 隐患检查记录
|
|
@@ -49,18 +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(EState.NORMAL.getValue());
|
|
|
+ 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) {
|