Commit c0b8c18b authored by 韩桐桐's avatar 韩桐桐

fix(jg):管道导入保存接口

parent 72420771
......@@ -128,6 +128,10 @@ public class PipingExcelDto extends BaseDto {
@ExcelProperty(value = "检验报告编号")
private String inspectReportNo;
@ApiModelProperty(value = "检验报告附件")
@ExcelIgnore
private String inspectReport;
//-----------------------------------------------------------------------设计信息
@ApiModelProperty(value = "设计单位统一社会信用代码")
......
......@@ -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));
......
......@@ -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.*;
......@@ -56,6 +54,8 @@ 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.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.regex.Pattern;
......@@ -97,6 +97,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 +1435,21 @@ 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 fileData = JSON.parseObject(toJSONString(JSONArray.parseArray(toJSONString(JSON.parseObject(toJSONString(equListsJSONArr.get(i)), JSONObject.class).get("fileData"))).get(0)), JSONObject.class);
if (!ValidationUtil.isEmpty(fileData) && "inspectReport".equals(String.valueOf(fileData.get("key")))) {
JSONArray value = JSONArray.parseArray(toJSONString(fileData.get("value")));
equ.setInspectReport(JSON.toJSONString(value));
}
}
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
// 监管——历史——管道——批量
......@@ -1465,18 +1476,57 @@ 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();
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("系统已存在该使用登记证编号!");
}
......@@ -1722,13 +1772,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())
......@@ -1759,7 +1809,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 +1828,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 +1840,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 +1866,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 +1889,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 +1907,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);
......
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