Commit 15c41684 authored by hezhuozhi's avatar hezhuozhi

Merge remote-tracking branch 'origin/develop_tzs_register' into develop_tzs_register

parents cd913b80 6b647cc1
......@@ -128,6 +128,10 @@ public class PipingExcelDto extends BaseDto {
@ExcelProperty(value = "检验报告编号")
private String inspectReportNo;
@ApiModelProperty(value = "检验报告附件")
@ExcelIgnore
private String inspectReport;
//-----------------------------------------------------------------------设计信息
@ApiModelProperty(value = "设计单位统一社会信用代码")
......
......@@ -80,6 +80,7 @@
ur.supervision_org_code,
ur.use_address as fullAddress,
ur.cancel_reason as cancelReason,
ur.project_contraption_id as projectContraptionId,
(select group_concat(re.equ_id) from tzs_jg_use_registration_eq re where ur.sequence_nbr = re.equip_transfer_id) as equipId,
(SELECT
group_concat(DISTINCT other.supervisory_code)
......@@ -645,6 +646,7 @@
pp."WORK_TEMPERATURE" AS workTemperature,
pp."WORK_MEDIUM" AS workMedium,
(select INSPECT_ORG_NAME from idx_biz_jg_inspection_detection_info where "RECORD" = ui."RECORD" ORDER BY INSPECT_DATE DESC limit 1) inspectOrgName,
(select INSPECT_CONCLUSION from idx_biz_jg_inspection_detection_info where "RECORD" = ui."RECORD" ORDER BY INSPECT_DATE DESC limit 1) inspectConclusionCode,
(select name from cb_data_dictionary where type = 'JYJL' and code = (select INSPECT_CONCLUSION from idx_biz_jg_inspection_detection_info where "RECORD" = ui."RECORD" ORDER BY INSPECT_DATE DESC limit 1)) inspectConclusion,
to_char((select NEXT_INSPECT_DATE from idx_biz_jg_inspection_detection_info where "RECORD" = ui."RECORD" ORDER BY INSPECT_DATE DESC limit 1), 'YYYY-MM-DD') nextInspectDate
FROM
......@@ -1073,7 +1075,6 @@
#{item}
</foreach>
AND ui.IS_INTO_MANAGEMENT = true
AND (length(ri.USE_ORG_CODE) = 0 OR ri.USE_ORG_CODE IS NULL)
ORDER BY ui.REC_DATE DESC
)
</select>
......
......@@ -75,7 +75,7 @@ public class DataDockController {
**/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/savePipingData")
@ApiOperation(httpMethod = "POST", value = "工业管道批量保存", notes = "工业管道批量保存")
@ApiOperation(httpMethod = "POST", value = "工业 、公用、长输管道批量保存", notes = "工业 、公用、长输管道批量保存")
@RestEventTrigger(value = "operateLogRestEventHandler")
public ResponseModel<?> savePipingData(@RequestBody Map<String, Object> paramMap) {
return ResponseHelper.buildResponse(dataDockService.savePipingData(paramMap));
......
......@@ -195,6 +195,18 @@ public class IdxBizJgProjectContraptionController extends BaseController {
return ResponseHelper.buildResponse(idxBizJgProjectContraptionServiceImpl.getDetectionInfoDetail(sequenceNbr));
}
/**
* 获取最新检验信息详情
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getNewInspectionDetailByRecord")
@ApiOperation(httpMethod = "GET", value = "获取最新检验信息详情", notes = "获取最新检验信息详情")
public ResponseModel<IdxBizJgInspectionDetectionInfo> getNewInspectionDetailByRecord(@RequestParam("record") String record) {
return ResponseHelper.buildResponse(idxBizJgProjectContraptionServiceImpl.getNewInspectionDetailByRecord(record));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/summaryBasicInfo/export")
@ApiOperation(httpMethod = "GET", value = "导出基本信息汇总表(长输/公用管道)", notes = "导出基本信息汇总表(长输/公用管道)")
......
......@@ -10,6 +10,7 @@ import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration;
import com.yeejoin.amos.boot.module.jg.api.enums.CompanyTypeEnum;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgProjectContraptionMapper;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.component.feign.utils.FeignUtil;
import com.yeejoin.amos.feign.privilege.Privilege;
......@@ -29,6 +30,7 @@ import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.text.SimpleDateFormat;
......@@ -45,6 +47,8 @@ public class JgUseRegistrationController extends BaseController {
@Autowired
JgUseRegistrationServiceImpl jgUseRegistrationServiceImpl;
@Resource
private IdxBizJgProjectContraptionMapper jgProjectContraptionMapper;
@TycloudOperation(ApiLevel = UserType.AGENCY)
......@@ -143,6 +147,9 @@ public class JgUseRegistrationController extends BaseController {
list.getRecords().forEach(x -> {
x.put("companyType", info.getCompany().getCompanyType());
x.put("regType", "1".equals(x.get("regType")) ? "历史登记": "2".equals(x.get("regType")) ? "特殊历史登记": "新增登记");
if ("8000".equals(String.valueOf(x.get("equListCode")))){
x.put("canVoided", jgProjectContraptionMapper.countContraptionInUseTimesForDeleteByIntoManagement(Long.parseLong((String) x.get("projectContraptionId"))) == 0);
}
});
return ResponseHelper.buildResponse(list);
}
......@@ -382,7 +389,7 @@ public class JgUseRegistrationController extends BaseController {
@ApiOperation(httpMethod = "GET", value = "查询工程装置下的所有做过安装告知但是为做使用登记的管道", notes = "查询工程装置下的所有做过安装告知但是为做使用登记的管道")
@GetMapping(value = "/getDeviceListByProjectContraptionSeq")
public ResponseModel<Object> getDeviceListByProjectContraption(@RequestParam("record") String projectContraptionSeq,
@RequestParam(required = false) String[] originProjectContraptionIds) {
@RequestParam("originProjectContraptionIds") String[] originProjectContraptionIds) {
return ResponseHelper.buildResponse(jgUseRegistrationServiceImpl.getDeviceListByProjectContraption(projectContraptionSeq, originProjectContraptionIds));
}
}
......@@ -14,6 +14,7 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
......@@ -23,10 +24,7 @@ import com.yeejoin.amos.boot.module.jg.api.converter.DictParamsConverter;
import com.yeejoin.amos.boot.module.jg.api.converter.EquCategoryConverter;
import com.yeejoin.amos.boot.module.jg.api.converter.EquDefineConverter;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.api.entity.JgRegistrationHistory;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationEq;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationManage;
import com.yeejoin.amos.boot.module.jg.api.entity.*;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jg.biz.service.*;
......@@ -45,6 +43,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.aspectj.weaver.ast.Var;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
......@@ -56,6 +55,9 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.io.InputStream;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.temporal.ValueRange;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.regex.Pattern;
......@@ -97,6 +99,8 @@ public class DataDockServiceImpl {
private final TzsServiceFeignClient tzsServiceFeignClient;
private final CommonServiceImpl commonService;
private final JgRegistrationHistoryServiceImpl jgRegistrationHistoryService;
private final JgCertificateChangeRecordServiceImpl certificateChangeRecordService;
private final JgCertificateChangeRecordEqServiceImpl certificateChangeRecordEqService;
private final Map<String, Object> resultError = new HashMap<>();
List<String> useInnerCodeList = new ArrayList<>();// 单位内部编号集合
......@@ -1433,12 +1437,34 @@ public class DataDockServiceImpl {
}
}
@GlobalTransactional(rollbackFor = Exception.class)
@Transactional(rollbackFor = Exception.class)
public Object savePipingData(Map<String, Object> paramMap) {
// 获取数据
JSONObject equipInfo = JSON.parseObject(toJSONString(paramMap.get("equipInfo")), JSONObject.class);
JSONObject attachmentUpload = JSON.parseObject(toJSONString(paramMap.get("attachmentUpload")), JSONObject.class);
List<PipingExcelDto> equLists = JSONArray.parseArray(toJSONString(attachmentUpload.get("equLists"))).toJavaList(PipingExcelDto.class);
JSONArray equListsJSONArr = JSONArray.parseArray(toJSONString(attachmentUpload.get("equLists")));
List<PipingExcelDto> equLists = equListsJSONArr.toJavaList(PipingExcelDto.class);
for (int i = 0; i < equLists.size(); i++) {
PipingExcelDto equ = equLists.get(i);
JSONObject equJson = JSON.parseObject(toJSONString(equListsJSONArr.get(i)));
JSONArray fileDataArray = equJson.getJSONArray("fileData");
if (fileDataArray == null || fileDataArray.isEmpty()) {
continue;
}
for (Object arr : fileDataArray) {
JSONObject fileData = JSON.parseObject(toJSONString(arr));
if (ValidationUtil.isEmpty(fileData) || !"inspectReport".equals(fileData.getString("key"))) {
continue;
}
JSONArray value = fileData.getJSONArray("value");
if (value != null) {
equ.setInspectReport(value.toJSONString());
}
}
}
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
// 监管——历史——管道——批量
......@@ -1465,18 +1491,58 @@ public class DataDockServiceImpl {
// 生成使用登记表信息 + 设备关系表 + 历史表
JgUseRegistration useReg = this.saveUseRegAndEq(paramsDto, records, proCon);
// 生成使用登记证表数据
this.saveUseRegManage(paramsDto, useReg);
JgUseRegistrationManage regManage = this.saveUseRegManage(paramsDto, useReg);
// 流水表
this.saveCertChangeRecord(useReg, regManage, records, paramsDto);
}
return Boolean.TRUE;
}
public void saveCertChangeRecord(JgUseRegistration useReg, JgUseRegistrationManage regManage, List<String> records, EquipRequestParamsDto paramsDto) {
Long changeRecordId = sequence.nextId();
JgCertificateChangeRecord changeRecord = new JgCertificateChangeRecord()
.setApplyNo(useReg.getApplyNo())
.setReceiveOrgName(useReg.getReceiveOrgName())
.setAuditPassDate(new Date())
.setRegType(BusinessTypeEnum.JG_USAGE_REGISTRATION.getName())
.setRegDate(useReg.getCreateDate())
.setChangeContent(this.buildRecordContent(useReg, paramsDto))
.setUseRegistrationCode(useReg.getUseRegistrationCode())
.setReceiveCompanyCode(useReg.getReceiveCompanyOrgCode())
.setCertificateNo(regManage.getCertificateNo())
.setUseUnitCreditCode(useReg.getUseUnitCreditCode())
.setUseUnitName(useReg.getUseUnitName())
.setEquCategory(paramsDto.getEquCategoryCode())
.setCreateDate(new Date());
certificateChangeRecordService.save(changeRecord);
records.forEach(record -> {
JgCertificateChangeRecordEq changeRecordEq = new JgCertificateChangeRecordEq();
changeRecordEq.setChangeRecordId(String.valueOf(changeRecordId));
changeRecordEq.setEquId(record);
certificateChangeRecordEqService.save(changeRecordEq);
});
}
public String buildRecordContent(JgUseRegistration useReg, EquipRequestParamsDto paramsDto) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
return paramsDto.getCompanyName() + "的" + paramsDto.getExecUserName() + "办理了【" + "历史设备登记" + "】," +
"单号【" + useReg.getApplyNo() + "】,办理日期" + simpleDateFormat.format(new Date());
}
/**
* 检查本单位是否存在使用等级证编号
* 检查本单位是否存在使用等级证编号 + 不能是系统未生成的
*
* @param paramsDto
*/
public void checkTheUnitRegManageAlreadyExists(EquipRequestParamsDto paramsDto) {
Integer useRegManageCount = jgUseRegistrationManageService.lambdaQuery().eq(JgUseRegistrationManage::getUseRegistrationCode, paramsDto.getCompanyCode()).eq(JgUseRegistrationManage::getUseUnitName, paramsDto.getCompanyName()).eq(JgUseRegistrationManage::getUseRegistrationCode, paramsDto.getUseOrgCode()).eq(JgUseRegistrationManage::getEquList, EquipmentClassifityEnum.getNameByCode(paramsDto.getEquListCode())).eq(JgUseRegistrationManage::getEquCategory, EquCategoryConverter.getKeyByValue(paramsDto.getEquCategoryCode())).count();
idxBizJgRegisterInfoServiceImpl.checkUseRegistrationCode(paramsDto.getUseOrgCode(),"unit");
Integer useRegManageCount = jgUseRegistrationManageService.lambdaQuery()
.eq(JgUseRegistrationManage::getUseUnitCreditCode, paramsDto.getCompanyCode())
.eq(JgUseRegistrationManage::getUseUnitName, paramsDto.getCompanyName())
.eq(JgUseRegistrationManage::getUseRegistrationCode, paramsDto.getUseOrgCode())
.eq(JgUseRegistrationManage::getEquList, paramsDto.getEquListName())
.eq(JgUseRegistrationManage::getEquCategory, paramsDto.getEquCategoryName())
.count();
if (useRegManageCount > 0) {
throw new BadRequest("系统已存在该使用登记证编号!");
}
......@@ -1696,6 +1762,7 @@ public class DataDockServiceImpl {
esEquipmentDto.setPROJECT_CONTRAPTION(paramsDto.getProjectContraption());
esEquipmentDto.setPRODUCT_NAME(pipelineInfo.getPipeName());
esEquipmentDto.setProjectContraptionId(paramsDto.getProjectContraptionSeq());
esEquipmentDto.setUSE_ORG_CODE(paramsDto.getUseOrgCode());
if (inspectionDetectionInfo.getNextInspectDate() != null) {
esEquipmentDto.setNEXT_INSPECT_DATE(inspectionDetectionInfo.getNextInspectDate().getTime());
}
......@@ -1722,13 +1789,13 @@ public class DataDockServiceImpl {
*/
public JgUseRegistration saveUseRegAndEq(EquipRequestParamsDto paramsDto, List<String> records, IdxBizJgProjectContraption proCon) {
ResponseModel<List<String>> listResponseModel = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.SYDJ.getCode(), 1);
String spplyNo = listResponseModel.getResult().get(0);
String applyNo = listResponseModel.getResult().get(0);
Long useRegseq = sequence.nextId();
JgUseRegistration useReg = new JgUseRegistration()
.setSupervisoryCode(proCon.getSupervisoryCode())
.setUseUnitCreditCode(paramsDto.getCompanyCode())
.setUseUnitName(paramsDto.getCompanyName())
.setApplyNo(spplyNo)
.setApplyNo(applyNo)
.setAuditStatus(FlowStatusEnum.TO_BE_FINISHED.getName())
.setStatus(FlowStatusEnum.TO_BE_FINISHED.getName())
.setReceiveOrgName(paramsDto.getReceiveOrgName())
......@@ -1745,6 +1812,8 @@ public class DataDockServiceImpl {
.setCreateDate(new Date())
.setCreateUserId(paramsDto.getExecUserId())
.setCreateUserName(paramsDto.getExecUserName())
.setProjectContraptionId(String.valueOf(proCon.getSequenceNbr()))
.setProjectContraption(paramsDto.getProjectContraption())
.setRegDate(new Date());
useReg.setSequenceNbr(useRegseq);
jgUseRegistrationServiceImpl.save(useReg);
......@@ -1759,7 +1828,7 @@ public class DataDockServiceImpl {
jgUseRegistrationEqServiceImpl.save(useRegEq);
});
JSONObject changeData = getJgUseRegistrationChangeData(paramsDto, records, spplyNo);
JSONObject changeData = getJgUseRegistrationChangeData(paramsDto, records, applyNo);
JgRegistrationHistory registrationHistory = JgRegistrationHistory.builder()
.registrationClass("使用登记")
......@@ -1778,6 +1847,7 @@ public class DataDockServiceImpl {
}
private JSONObject getJgUseRegistrationChangeData(EquipRequestParamsDto paramsDto, List<String> records, String spplyNo) {
String record = Optional.ofNullable(records.get(0)).orElse("");
JSONObject jsonObject = new JSONObject();
jsonObject.put("receiveOrgCode", paramsDto.getReceiveOrgCode() + "_" + paramsDto.getReceiveOrgName());
jsonObject.put("status", FlowStatusEnum.TO_BE_FINISHED.getName());
......@@ -1789,6 +1859,18 @@ public class DataDockServiceImpl {
}
IdxBizJgProjectContraption projectContraption = idxBizJgProjectContraptionService.getById(paramsDto.getProjectContraptionSeq());
jsonObject.put("pipelineLength", projectContraption.getPipelineLength());
jsonObject.put("useUnitCreditCode", paramsDto.getCompanyCode());
jsonObject.put("useUnitName", paramsDto.getCompanyName());
IdxBizJgConstructionInfo constructionInfo = idxBizJgConstructionInfoService.lambdaQuery().eq(IdxBizJgConstructionInfo::getRecord, record).orderByDesc(IdxBizJgConstructionInfo::getRecDate).one();
jsonObject.put("uscUnitCreditCode", constructionInfo.getUscUnitCreditCode());
jsonObject.put("uscUnitName", constructionInfo.getUscUnitName());
IdxBizJgInspectionDetectionInfo inspectionDetectionInfo = idxBizJgInspectionDetectionInfoService.lambdaQuery().eq(IdxBizJgInspectionDetectionInfo::getRecord, record).orderByDesc(IdxBizJgInspectionDetectionInfo::getRecDate).one();
JSONObject inspectionDetectionInfoJO = (JSONObject) JSON.toJSON(inspectionDetectionInfo);
jsonObject.putAll(inspectionDetectionInfoJO);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
jsonObject.put("inspectDate", sdf.format(inspectionDetectionInfo.getInspectDate()));
jsonObject.put("nextInspectDate", sdf.format(inspectionDetectionInfo.getNextInspectDate()));
jsonObject.put("orgBranchCode", paramsDto.getOrgBranchCode() + "_" + paramsDto.getOrgBranchName());
jsonObject.put("projectContraption", projectContraption.getProjectContraption());
jsonObject.put("projectContraptionNo", projectContraption.getProjectContraptionNo());
jsonObject.put("equipmentLists", jgUseRegistrationServiceImpl.getBaseMapper().queryForUnitPipelineEquipment(records));
......@@ -1803,7 +1885,7 @@ public class DataDockServiceImpl {
*
* @param paramsDto
*/
public void saveUseRegManage(EquipRequestParamsDto paramsDto, JgUseRegistration useReg) {
public JgUseRegistrationManage saveUseRegManage(EquipRequestParamsDto paramsDto, JgUseRegistration useReg) {
Map<String, String> equType = new HashMap<>();
equType.put("equListCode", paramsDto.getEquCategoryCode());
equType.put("equCategoryCode", paramsDto.getEquDefineCode());
......@@ -1826,8 +1908,15 @@ public class DataDockServiceImpl {
.certificateStatus("已登记")
.regDate(new Date())
// .equUseAddress()
.useUnitAddress(paramsDto.getCompanyAddress()).manageType("unit").isScrap("0").version(1).build();
.createDate(new Date())
.createUserId(paramsDto.getExecUserId())
.useUnitAddress(paramsDto.getCompanyAddress())
.manageType("unit")
.isScrap("0")
.version(1)
.build();
jgUseRegistrationManageService.save(registrationManage);
return registrationManage;
}
/**
......@@ -1837,9 +1926,25 @@ public class DataDockServiceImpl {
*/
public IdxBizJgProjectContraption saveProjectContraption(EquipRequestParamsDto paramsDto) {
Long seq = sequence.nextId();
IdxBizJgProjectContraption contraption = IdxBizJgProjectContraption.builder().projectContraption(paramsDto.getProjectContraption()).projectContraptionNo(paramsDto.getProjectContraptionNo()).useUnitCreditCode(paramsDto.getCompanyCode()).useUnitName(paramsDto.getCompanyName())
IdxBizJgProjectContraption contraption = IdxBizJgProjectContraption.builder()
.projectContraption(paramsDto.getProjectContraption())
.projectContraptionNo(paramsDto.getProjectContraptionNo())
.useUnitCreditCode(paramsDto.getCompanyCode())
.useUnitName(paramsDto.getCompanyName())
// .uscUnitCreditCode().uscUnitName()
.equList(paramsDto.getEquListCode()).equListName(paramsDto.getEquListName()).equCategory(paramsDto.getEquCategoryCode()).equCategoryName(paramsDto.getEquCategoryName()).equDefine(paramsDto.getEquDefineCode()).equDefineName(paramsDto.getEquDefineName()).pipelineLength(paramsDto.getPipelineLength()).productPhoto(paramsDto.getProductPhoto()).otherAccessories(paramsDto.getOtherAccessories()).orgCode(paramsDto.getOrgBranchCode()).orgName(paramsDto.getOrgBranchName()).productQualificationCertificate(paramsDto.getProductQualificationCertificate())
.equList(paramsDto.getEquListCode())
.equListName(paramsDto.getEquListName())
.equCategory(paramsDto.getEquCategoryCode())
.equCategoryName(paramsDto.getEquCategoryName())
.equDefine(paramsDto.getEquDefineCode())
.equDefineName(paramsDto.getEquDefineName())
.pipelineLength(paramsDto.getPipelineLength())
.productPhoto(paramsDto.getProductPhoto())
.useRegistrationCode(paramsDto.getUseOrgCode())
.otherAccessories(paramsDto.getOtherAccessories())
.orgCode(paramsDto.getOrgBranchCode())
.orgName(paramsDto.getOrgBranchName())
.productQualificationCertificate(paramsDto.getProductQualificationCertificate())
// .province().provinceName().city().cityName().county().countyName().street().streetName().address()
.supervisoryCode(idxBizJgRegisterInfoServiceImpl.getSupervisoryCode(paramsDto.getVehicleApanage(), paramsDto.getEquCategoryCode())).isIntoManagement(Boolean.TRUE).dataSource(paramsDto.getDataSource()).equCode(paramsDto.getEquCode()).isFirstMerge(Boolean.FALSE).build();
contraption.setSequenceNbr(seq);
......
......@@ -513,7 +513,7 @@ public class IdxBizJgProjectContraptionServiceImpl extends BaseService<IdxBizJgP
String equListName = jgVehicleInformationMapper.getEquCategoryNameByCode(model.getEquListCode());
String equCategoryName = jgVehicleInformationMapper.getEquCategoryNameByCode(model.getEquCategoryCode());
String equDefineName = jgVehicleInformationMapper.getEquCategoryNameByCode(model.getEquDefineCode());
projectContraption.setDataSource("new");
projectContraption.setDataSource("jg");
projectContraption.setIsIntoManagement(true);
projectContraption.setProvinceName("陕西省");
projectContraption.setEquList(model.getEquListCode());
......@@ -605,4 +605,7 @@ public class IdxBizJgProjectContraptionServiceImpl extends BaseService<IdxBizJgP
}
}
public IdxBizJgInspectionDetectionInfo getNewInspectionDetailByRecord(String record) {
return detectionInfoService.queryNewestDetailByRecord(record);
}
}
\ No newline at end of file
......@@ -405,6 +405,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
if("unit".equals(jgUseRegistration.getManageType()) && registerInfo.getEquList().equals(EquipmentClassifityEnum.YLGD.getCode())){
// 压力管道逻辑,根据设备record + 检验报告编号判定唯一一条检验流水,有进行更新,无则进行插入
inspectionDetectionInfo.setInspectConclusion((String) map.get("inspectConclusionCode"));
saveEquipOfPieLineInspectData(record, inspectionDetectionInfo);
} else {
// 其他逻辑
......@@ -751,8 +752,6 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())) + "", ReginParams.class);
CompanyBo company = reginParams.getCompany();
String equListCode = String.valueOf(map.get("EQU_LIST_CODE"));
// 压力管道逻辑
// EquipmentClassifityEnum.YLGD.getCode().equals(equListCode)
List<Map<String, Object>> equipmentLists = (List<Map<String, Object>>) map.get("equipmentLists");
if (CollectionUtils.isEmpty(equipmentLists)) {
throw new BadRequest("请选择设备信息!");
......@@ -771,8 +770,22 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
}
}
// 压力管道逻辑(如果是合并到已有证的工程装置,需要去除已完成设备)
Set<Object> excludedRecords = EquipmentClassifityEnum.YLGD.getCode().equals(equListCode) ?
idxBizJgUseInfoService.lambdaQuery()
.eq(IdxBizJgUseInfo::getProjectContraptionId, map.get("projectContraptionId"))
.list().stream()
.map(IdxBizJgUseInfo::getRecord)
.collect(Collectors.toSet())
: Collections.emptySet();
List<Map<String, Object>> filteredEquipmentLists = equipmentLists.stream()
.filter(equipment -> !excludedRecords.contains(equipment.get("record")))
.collect(Collectors.toList());
// 提交时进行校验设备是否在流程中使用(并发及同时打开多个相同的页面时才会出现此种情况)
checkForRepeatUsedEquip(map, equipmentLists, company);
checkForRepeatUsedEquip(map, filteredEquipmentLists, company);
JgUseRegistration useRegistration = JSON.parseObject(JSON.toJSONString(map), JgUseRegistration.class);
useRegistration.setRegDate(new Date());
useRegistration.setCreateDate(new Date());
......@@ -1101,6 +1114,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
}
private void updateRegAndProjectContraption(JgUseRegistration jgUseRegistration, JSONObject mapData) {
//总工程装置
if(!StringUtils.isEmpty(jgUseRegistration.getProjectContraptionId())){
IdxBizJgProjectContraption jgProjectContraption = jgProjectContraptionService.getById(jgUseRegistration.getProjectContraptionId());
jgUseRegistration.setProjectContraption(jgProjectContraption.getProjectContraption());
......@@ -1118,33 +1132,44 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
jgProjectContraption.setOrgName(String.valueOf(mapData.getString("orgBranchCode")).split("_")[1]);
jgProjectContraption.setOrgCode(String.valueOf(mapData.getString("orgBranchCode")).split("_")[0]);
}
jgProjectContraptionService.updateById(jgProjectContraption);
}
//装置进行合并
if (!jgUseRegistration.getOriginProjectContraptionIds().contains(jgUseRegistration.getProjectContraptionId())){
//1.修改所有原始工程id集合下的use_info表中的工程装置Id为总工程装置ID
List<IdxBizJgUseInfo> useInfoList = idxBizJgUseInfoService.lambdaQuery()
.in(IdxBizJgUseInfo::getProjectContraptionId, jgUseRegistration.getOriginProjectContraptionIds())
.list();
for (IdxBizJgUseInfo useInfo : useInfoList) {
Optional<ESEquipmentCategoryDto> equInfosWithEs = esEquipmentCategory.findById(useInfo.getRecord());
equInfosWithEs.ifPresent(equInfoEs -> {
if (PipelineEnum.INDUSTRIAL_PIPELINE.getCode().equals(equInfoEs.getEQU_CATEGORY_CODE())) {
equInfoEs.setProjectContraptionId(useInfo.getProjectContraptionId());
esEquipmentCategory.save(equInfoEs);
}
});
useInfo.setProjectContraptionId(jgUseRegistration.getProjectContraptionId());
useInfoMapper.updateById(useInfo);
}
//2.修改原始工程装置表中的父级工程装置为总工程装置ID
List<IdxBizJgProjectContraption> projectContraptionList = jgProjectContraptionService.lambdaQuery()
.in(BaseEntity::getSequenceNbr, jgUseRegistration.getOriginProjectContraptionIds())
.list();
for (IdxBizJgProjectContraption contraption : projectContraptionList) {
contraption.setProjectContraptionParentId(jgUseRegistration.getProjectContraptionId());
jgProjectContraptionService.updateById(contraption);
jgProjectContraption.setStartLatitudeLongitude(String.valueOf(mapData.get("startLatitudeLongitude")));
jgProjectContraption.setEndLatitudeLongitude(String.valueOf(mapData.get("endLatitudeLongitude")));
//装置进行合并
if (!jgUseRegistration.getOriginProjectContraptionIds().contains(jgUseRegistration.getProjectContraptionId())){
//1.修改所有原始工程id集合下的use_info表中的工程装置Id为总工程装置ID
List<IdxBizJgUseInfo> useInfoList = idxBizJgUseInfoService.lambdaQuery()
.in(IdxBizJgUseInfo::getProjectContraptionId, jgUseRegistration.getOriginProjectContraptionIds())
.list();
for (IdxBizJgUseInfo useInfo : useInfoList) {
Optional<ESEquipmentCategoryDto> equInfosWithEs = esEquipmentCategory.findById(useInfo.getRecord());
equInfosWithEs.ifPresent(equInfoEs -> {
if (PipelineEnum.INDUSTRIAL_PIPELINE.getCode().equals(equInfoEs.getEQU_CATEGORY_CODE())) {
equInfoEs.setProjectContraptionId(useInfo.getProjectContraptionId());
esEquipmentCategory.save(equInfoEs);
}
});
useInfo.setProjectContraptionId(jgUseRegistration.getProjectContraptionId());
useInfoMapper.updateById(useInfo);
}
//2.修改原始工程装置表中的父级工程装置为总工程装置ID
List<IdxBizJgProjectContraption> projectContraptionList = jgProjectContraptionService.lambdaQuery()
.in(BaseEntity::getSequenceNbr, jgUseRegistration.getOriginProjectContraptionIds())
.list();
for (IdxBizJgProjectContraption contraption : projectContraptionList) {
contraption.setProjectContraptionParentId(jgUseRegistration.getProjectContraptionId());
jgProjectContraptionService.updateById(contraption);
}
//计算合并后总长度
double totalPipelineLength = Stream.concat(projectContraptionList.stream()
.map(IdxBizJgProjectContraption::getPipelineLength),
Stream.of(jgProjectContraption.getPipelineLength()))
.filter(Objects::nonNull)
.mapToDouble(Double::doubleValue)
.sum();
jgProjectContraption.setPipelineLength(totalPipelineLength);
}
jgProjectContraptionService.updateById(jgProjectContraption);
}
}
......@@ -2001,9 +2026,9 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
}
// 完成、作废时显示历史数据,其他状态显示实时数据
if (!(jgUseRegistration.getStatus().equals(FlowStatusEnum.TO_BE_FINISHED.getName()) || jgUseRegistration.getStatus().equals(FlowStatusEnum.TO_BE_DISCARD.getName()))) {
jsonObject.remove("equipmentLists");
// 查询气瓶设备详情
if (CylinderTypeEnum.CYLINDER.getCode().equals(jsonObject.get("EQU_CATEGORY_CODE"))) {
jsonObject.remove("equipmentLists");
List<DictionarieValueModel> fillingMedium = Systemctl.dictionarieClient.dictValues("FILLING_MEDIUM").getResult();
Map<String, Object> fillingMediumMap = fillingMedium.stream().collect(Collectors.toMap(DictionarieValueModel::getDictDataKey, DictionarieValueModel::getDictDataValue));
List<Map<String, Object>> result = jgUseRegistrationMapper.queryForUnitVesselEquipment(records);
......@@ -2011,10 +2036,11 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
i.put("chargingMedium", fillingMediumMap.get(i.get("chargingMedium")));
});
jsonObject.put("equipmentLists", result);
} else {
// 查询管道设备详情
jsonObject.put("equipmentLists", jgUseRegistrationMapper.queryForUnitPipelineEquipment(records));
}
// else {
// 查询管道设备详情
// jsonObject.put("equipmentLists", jgUseRegistrationMapper.queryForUnitPipelineEquipment(records));
//}
} else {
this.setPieLineInspectInfo(jgUseRegistration.getProjectContraptionId(), jsonObject);
this.setConstructionInfo(jgUseRegistration.getProjectContraptionId(), jsonObject);
......@@ -2836,7 +2862,13 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
esEquipmentCategory.deleteAll(esDtoList);
//作废使用登记证 & 生成使用登记证的流水
this.invalidUseRegistrationCertificate(jgUseRegistration);
}else{
// 单据逻辑删除
this.lambdaUpdate().set(JgUseRegistration::getIsDelete, Boolean.TRUE).eq(JgUseRegistration::getSequenceNbr, sequenceNbr).update();
// 管道作废工程装置
if (!ValidationUtil.isEmpty(jgUseRegistration.getProjectContraptionId())) {
idxBizJgProjectContraptionMapper.delete(new LambdaQueryWrapper<IdxBizJgProjectContraption>().eq(IdxBizJgProjectContraption::getSequenceNbr,jgUseRegistration.getProjectContraptionId()));
}
} else {
// 处理非批量导入数据,更新关联业务状态
processElseDataByStatus(oldStatus, jgUseRegistration);
// 注册事务提交后的操作
......@@ -3925,6 +3957,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
LambdaQueryWrapper<IdxBizJgProjectContraption> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(IdxBizJgProjectContraption::getUseUnitCreditCode,useUnitCreditCode);
wrapper.eq(IdxBizJgProjectContraption::getIsIntoManagement, true);
wrapper.eq(IdxBizJgProjectContraption::getEquCategory, "8300");
wrapper.eq(IdxBizJgProjectContraption::getIsFirstMerge, false);
wrapper.notIn(!proIds.isEmpty(), BaseEntity::getSequenceNbr, proIds);
wrapper.isNull(IdxBizJgProjectContraption::getProjectContraptionParentId);
......@@ -3991,7 +4024,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
JSONObject hisJson = JSON.parseObject(history.getChangeData());
Map<String, Object> fieldMappings = new HashMap<>();
fieldMappings.put("useRegistrationCode", projectContraption.getUseRegistrationCode());
fieldMappings.put("safetyManager", hisJson.get("safetyManager"));
fieldMappings.put("safetyManager", hisJson.get("safetyManagerId") + "_" +hisJson.get("safetyManager"));
fieldMappings.put("useDate", hisJson.get("useDate"));
fieldMappings.put("otherAccessories", hisJson.get("otherAccessories"));
fieldMappings.put("factoryUseSiteStreet", hisJson.get("factoryUseSiteStreet"));
......@@ -4000,8 +4033,16 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
fieldMappings.put("city", hisJson.get("city"));
fieldMappings.put("isXixian", hisJson.get("isXixian"));
fieldMappings.put("county", hisJson.get("county"));
fieldMappings.put("longitudeLatitude", hisJson.get("longitudeLatitude"));
fieldMappings.put("startLatitudeLongitude",
Objects.isNull(hisJson.get("startLatitudeLongitude")) ?
hisJson.get("longitudeLatitude") :
hisJson.get("startLatitudeLongitude"));
fieldMappings.put("endLatitudeLongitude",
Objects.isNull(hisJson.get("startLatitudeLongitude")) ?
hisJson.get("longitudeLatitude") :
hisJson.get("endLatitudeLongitude"));
fieldMappings.put("estateUnitName", hisJson.get("estateUnitName"));
fieldMappings.put("orgBranchCode", hisJson.get("orgBranchCode"));
fieldMappings.forEach(re::put);
}
}
......
......@@ -27,4 +27,6 @@ public interface JyjcInspectionApplicationEquipMapper extends BaseMapper<JyjcIns
List<InspectTimeCountDto> countInspectTimeCountByTypeAndEquList(@Param("orgCode") String orgCode, @Param("dto") DPFilterParamDto dpFilterParamDto);
Integer inspectTimeCount(@Param("dpFilterParamDto") DPFilterParamDto dpFilterParamDto);
List<JyjcInspectionApplicationEquip> queryWaitFlushData();
}
......@@ -75,4 +75,24 @@
GROUP BY
C.equ_category
</select>
<select id="queryWaitFlushData"
resultType="com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionApplicationEquip">
SELECT
a.sequence_nbr as application_seq,
ae.sequence_nbr,
ui."PROJECT_CONTRAPTION_ID",
AE.equ_category
FROM
"amos_tzs_biz"."tz_jyjc_inspection_application" a,
tz_jyjc_inspection_application_equip ae,
idx_biz_jg_use_info ui,
idx_biz_jg_project_contraption pc
WHERE
a."equip_classify" = '8000'
and a.sequence_nbr =ae.application_seq
and ui."RECORD" = ae.equip_unicode
and a.inspection_type in ('AZJDJY','DQJY')
and pc.sequence_nbr = ui."PROJECT_CONTRAPTION_ID"
and a.project_contraption_id is null
</select>
</mapper>
package com.yeejoin.amos.boot.module.jyjc.biz.controller;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.HisDataHandlerServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
@RestController
@RequestMapping(value = "/hisDataHandler")
@Api(tags = "检验检测历史数据处理")
public class HisDataHandlerController {
private final HisDataHandlerServiceImpl hisDataHandlerService;
public HisDataHandlerController(HisDataHandlerServiceImpl hisDataHandlerService) {
this.hisDataHandlerService = hisDataHandlerService;
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "PUT", value = "压力管道批量报检,报检单据历史数据处理")
@PutMapping(value = "/v1/pieLine/data")
public ResponseModel<Boolean> pieLineDataHandlerV1() {
hisDataHandlerService.pieLineDataHandlerV1();
return ResponseHelper.buildResponse(true);
}
}
package com.yeejoin.amos.boot.module.jyjc.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionApplication;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionApplicationEquip;
import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcInspectionApplicationEquipMapper;
import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcInspectionApplicationMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import javax.annotation.Resource;
import java.util.List;
@Service
@Slf4j
public class HisDataHandlerServiceImpl {
@Resource
private JyjcInspectionApplicationEquipMapper jyjcInspectionApplicationEquipMapper;
@Resource
private JyjcInspectionApplicationMapper jyjcInspectionApplicationMapper;
@Transactional(rollbackFor = Exception.class)
public void pieLineDataHandlerV1() {
List<JyjcInspectionApplicationEquip> applicationEquips = jyjcInspectionApplicationEquipMapper.queryWaitFlushData();
log.info("处理前:待压力管道数据条数: {}", applicationEquips.size());
applicationEquips.forEach(applicationEquip -> {
// 更新设备表装置id
LambdaUpdateWrapper<JyjcInspectionApplicationEquip> updateWrapperEquip = new LambdaUpdateWrapper<>();
updateWrapperEquip.eq(BaseEntity::getSequenceNbr, applicationEquip.getSequenceNbr());
updateWrapperEquip.set(JyjcInspectionApplicationEquip::getProjectContraptionId, applicationEquip.getProjectContraptionId());
jyjcInspectionApplicationEquipMapper.update(null, updateWrapperEquip);
// 更新报检申请表装置id
LambdaUpdateWrapper<JyjcInspectionApplication> updateWrapperApp = new LambdaUpdateWrapper<>();
updateWrapperApp.eq(BaseEntity::getSequenceNbr, applicationEquip.getApplicationSeq());
updateWrapperApp.set(JyjcInspectionApplication::getProjectContraptionId, applicationEquip.getProjectContraptionId());
jyjcInspectionApplicationMapper.update(null, updateWrapperApp);
});
List<JyjcInspectionApplicationEquip> applicationEquipAfter = jyjcInspectionApplicationEquipMapper.queryWaitFlushData();
log.info("处理前:待压力管道数据条数: {}", applicationEquipAfter.size());
}
}
......@@ -206,13 +206,14 @@
<otherwise>
and pc.use_unit_credit_code=#{companyCode}
and pc.is_into_management = true
and exists (select 1 from idx_biz_jg_use_info ibjui, idx_biz_jg_inspection_detection_info di where ibjui."RECORD" = di."RECORD" and ibjui.project_contraption_id=pc.sequence_nbr limit 1)
and exists (select 1 from idx_biz_jg_use_info ibjui, idx_biz_jg_inspection_detection_info di where ibjui."RECORD" = di."RECORD" and ibjui.project_contraption_id=pc.sequence_nbr and di."INSPECT_TYPE" <![CDATA[<>]]> '' )
</otherwise>
</choose>
</otherwise>
</choose>
and not EXISTS (SELECt 1 FROM tz_jyjc_inspection_application a where a.status='6611' and a.application_unit_code=#{companyCode} and a.project_contraption_id = pc.sequence_nbr)
and (pc.project_contraption_parent_id is null or pc.project_contraption_parent_id = '')
and pc.equ_category = #{equCategory}
</select>
<select id="selectEquipListByExport" resultType="java.util.Map">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment