Commit 410eff12 authored by 韩桐桐's avatar 韩桐桐

fix(jg):工业管道使用登记汇总表打印问题修改

parent 4dd56618
......@@ -365,8 +365,8 @@
ui."USE_UNIT_CREDIT_CODE" useUnitCreditCode,
to_char(ui."USE_DATE", 'YYYY-MM') useDate,
(SELECT DESIGN_UNIT_NAME from idx_biz_jg_design_info where "RECORD" = ui."RECORD") designUnitName,
(SELECT USC_UNIT_NAME from idx_biz_jg_construction_info where "RECORD" = ui."RECORD" ORDER BY USC_DATE limit 1) uscUnitName,
to_char((SELECT USC_DATE from idx_biz_jg_construction_info where "RECORD" = ui."RECORD" ORDER BY USC_DATE limit 1), 'YYYY-MM') uscDate,
(SELECT USC_UNIT_NAME from idx_biz_jg_construction_info where "RECORD" = ui."RECORD" ORDER BY USC_DATE DESC limit 1) uscUnitName,
to_char((SELECT USC_DATE from idx_biz_jg_construction_info where "RECORD" = ui."RECORD" ORDER BY USC_DATE DESC limit 1), 'YYYY-MM') uscDate,
ui."RECORD" record,
ri."EQU_CODE" equCode,
ri."EQU_LIST" equList,
......@@ -386,13 +386,14 @@
pp."PIPELINE_NUMBER" pipelineNumber,
pp."NOMINAL_DIAMETER" nominalDiameter,
pp."WALL_THICKNESS" wallThickness,
pp."PIPE_LENGTH" pipeLength,
ROUND(pp."PIPE_LENGTH" / 1000.0, 4) pipeLength,
pp."PRESSURE" pressure,
pp."TEMPERATURE" temperature,
pp."MEDIUM" medium,
(select INSPECT_ORG_NAME from idx_biz_jg_inspection_detection_info where "RECORD" = ui."RECORD" ORDER BY INSPECT_DATE limit 1) inspectOrgName,
pp."REMARKS" remarks,
(select INSPECT_ORG_NAME from idx_biz_jg_inspection_detection_info where "RECORD" = ui."RECORD" ORDER BY INSPECT_DATE DESC limit 1) inspectOrgName,
(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 limit 1)) inspectConclusion,
to_char((select NEXT_INSPECT_DATE from idx_biz_jg_inspection_detection_info where "RECORD" = ui."RECORD" ORDER BY INSPECT_DATE limit 1), 'YYYY-MM-DD') nextInspectDate
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
idx_biz_jg_use_info ui
LEFT JOIN idx_biz_jg_register_info ri on ri."RECORD" = ui."RECORD"
......
......@@ -247,4 +247,14 @@ public class JgUseRegistrationController extends BaseController {
jgUseRegistrationServiceImpl.correctWrongData(applayNoList);
return ResponseHelper.buildResponse("ok");
}
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@GetMapping(value = "/useDate/handle")
@ApiOperation(httpMethod = "GET", value = "使用登记单子中投用年月的数据处理", notes = "使用登记单子中投用年月的数据处理")
public ResponseModel<Object> yunWeiRegistrationWrongData() {
// 关联 任务 : 26599 压力管道技术参数除起始位置、备注外均为必填,压力管道信息汇总表要求的字段在其余模块的都要求必填,压力管道信息汇总表也需要展示
// http://113.142.68.105:5080/zentao/task-view-26599.html
jgUseRegistrationServiceImpl.useDateHandler();
return ResponseHelper.buildResponse("ok");
}
}
......@@ -77,7 +77,10 @@ import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.YearMonth;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.*;
......@@ -89,6 +92,8 @@ import java.util.stream.IntStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import static java.util.stream.Collectors.toList;
/**
* 服务实现类
*
......@@ -122,6 +127,8 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
@Autowired
IdxBizJgSupervisionInfoMapper idxBizJgSupervisionInfoMapper;
@Autowired
EquipTechParamPipelineMapper equipTechParamPipelineMapper;
@Autowired
DataDictionaryServiceImpl iDataDictionaryService;
String[] jsonFields = {"productPhoto", "factoryStandard", "productQualityYieldProve", "insUseMaintainExplain",
"inspectReport", "designStandard", "designDoc", "longitudeLatitude", "otherAccessoriesDes", "otherAccessoriesFact",
......@@ -159,6 +166,8 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
@Autowired
private JgUseRegistrationMapper jgUseRegistrationMapper;
@Autowired
private ConstructionInfoMapper constructionInfoMapper;
@Autowired
private ESEquipmentCategory esEquipmentCategory;
@Autowired
private JgResumeInfoServiceImpl jgResumeInfoService;
......@@ -1281,7 +1290,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
List<JgUseRegistrationEq> eqList = jgRelationEquipMapper.selectList(lambda);
// 在使用单位待提交、一级受理已驳回、使用单位已撤回后清除关联的设备,保证可以再次新提单子选择相同的设备进行提交及原有单子的提交校验数据准备
if (NOT_FLOWING_STATE.contains(useRegistrationDb.getStatus())) {
List<String> records = eqList.stream().map(JgUseRegistrationEq::getEquId).collect(Collectors.toList());
List<String> records = eqList.stream().map(JgUseRegistrationEq::getEquId).collect(toList());
EquipUsedCheckStrategyContext.getUsedStrategy("useRegister").delDataForCheckEquipRepeatUsed(records, useRegistration.getUseUnitCreditCode());
}
}
......@@ -1322,7 +1331,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
// 完成、作废时显示历史数据,其他状态显示实时数据
if (!(jgUseRegistration.getStatus().equals(FlowStatusEnum.TO_BE_FINISHED.getName()) || jgUseRegistration.getStatus().equals(FlowStatusEnum.TO_BE_DISCARD.getName()))) {
List<Map<String, Object>> equipmentLists = (List<Map<String, Object>>) jsonObject.get("equipmentLists");
List<String> records = equipmentLists.stream().map(v -> (String) v.get("record")).collect(Collectors.toList());
List<String> records = equipmentLists.stream().map(v -> (String) v.get("record")).collect(toList());
jsonObject.remove("equipmentLists");
if (CylinderTypeEnum.CYLINDER.getCode().equals(jsonObject.get("EQU_CATEGORY_CODE"))) {
List<DictionarieValueModel> fillingMedium = Systemctl.dictionarieClient.dictValues("FILLING_MEDIUM").getResult();
......@@ -1591,11 +1600,17 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
JgRegistrationHistory jgRegistrationHistory = jgRegistrationHistoryService.getBaseMapper().selectOne(lambda);
JSONObject jsonObject = JSONObject.parseObject(jgRegistrationHistory.getChangeData());
JSONArray equipmentLists = (JSONArray) jsonObject.get("equipmentLists");
// 填充投用年月
String useDateValue = (String) jsonObject.get("useDate");
for (int i = 0; i < equipmentLists.size(); i++) {
JSONObject equipmentItem = equipmentLists.getJSONObject(i);
equipmentItem.put("useDate", timeToMonths(useDateValue));
}
total = equipmentLists.size();
AgencyUserModel result = new AgencyUserModel();
JgUseRegistration jgUseRegistration = jgUseRegistrationMapper.selectOne(new QueryWrapper<JgUseRegistration>().lambda()
.eq(JgUseRegistration::getSequenceNbr, sequenceNbr));
jsonObject.put("fullAddress",jgUseRegistration.getUseAddress());
if (!ValidationUtil.isEmpty(jgUseRegistration.getCreateUserId())) {
result = Privilege.agencyUserClient.queryByUserId(jgUseRegistration.getCreateUserId()).getResult();
}
......@@ -1629,6 +1644,22 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
}
/**
* 将 年月日 日期转为 年月 格式返回
* @param originalDateStr
* @return
*/
private static String timeToMonths(String originalDateStr) {
// 定义输入的日期格式
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
// 将字符串解析为LocalDate对象
LocalDate date = LocalDate.parse(originalDateStr, inputFormatter);
// 定义输出的日期格式
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM", Locale.CHINA);
// 将LocalDate对象格式化为所需的字符串
return date.format(outputFormatter);
}
/**
* 气瓶数据
*
* @return
......@@ -1682,9 +1713,16 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
// 使用单位
exportParamsMap.put("useUnitName", jsonObject.get("useUnitName"));
// 使用单位地址
exportParamsMap.put("address", jsonObject.get("address"));
// 工程(装置)名称
exportParamsMap.put("nameOfProjectDevice", "");
exportParamsMap.put("fullAddress", jsonObject.get("fullAddress"));
// 工程(装置)名称 取第一个设备的技术参数”工程装置名称“
JSONObject eqJSON =(JSONObject) equipmentLists.get(0);
String eqId = !ValidationUtil.isEmpty(eqJSON) ? String.valueOf(eqJSON.get("record")) : "";
EquipTechParamPipeline equipTechParamPipeline = equipTechParamPipelineMapper.queryTechParamInUse(eqId);
String deviceName = Optional.ofNullable(equipTechParamPipeline)
.map(EquipTechParamPipeline::getDeviceName)
.filter(name -> !ValidationUtil.isEmpty(name))
.orElse("");
exportParamsMap.put("nameOfProjectDevice", deviceName);
// 安全管理部门
exportParamsMap.put("orgBranchName", String.valueOf(jsonObject.get("orgBranchCode")).split("_")[1]);
// 安全管理员
......@@ -1701,7 +1739,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
// 数据截取
List<Object> equData = equipmentLists.subList(start, end);
// 设备数据填充
this.pressurePipeEquData(exportParamsMap, equData, size);
this.pressurePipeEquData(exportParamsMap, equData,current, size);
return commonService.generateSummaryOfCylinderInfo(exportParamsMap, wordPath, filePrefix);
})).collect(Collectors.toList());
CompletableFuture.allOf(futures.toArray(new CompletableFuture[page])).join();
......@@ -1737,16 +1775,17 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
/**
* 压力管道设备数据填充
*/
public void pressurePipeEquData(Map<String, Object> exportParamsMap, List<Object> equData, int size) {
public void pressurePipeEquData(Map<String, Object> exportParamsMap, List<Object> equData,int current, int size) {
String[] fieldNames = {"productName", "pipelineNumber", "deviceLevel", "designUnitName", "uscUnitName",
"uscDate", "useDate", "nominalDiameter", "wallThickness", "pipeLength", "pressure", "temperature",
"medium", "inspectConclusion", "inspectOrgName", "nextInspectDate", "inspectConclusion", "remark"};
"uscDate","useDate", "nominalDiameter", "wallThickness", "pipeLength", "pressure", "temperature",
"medium", "inspectConclusion", "inspectOrgName", "nextInspectDate", "inspectConclusion", "remarks"};
// 填充有效数据
for (int curr = 0; curr < equData.size(); curr++) {
JSONObject obj = (JSONObject) equData.get(curr);
int serialNum = curr + 1;
for (String fieldName : fieldNames) {
exportParamsMap.put("num" + serialNum,(current-1) * size + (curr + 1));
exportParamsMap.put(fieldName + serialNum, ValidationUtil.isEmpty(obj.get(fieldName)) ? "" : obj.get(fieldName));
}
}
......@@ -1755,6 +1794,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
for (int curr = equData.size(); curr < size; curr++) {
int serialNum = curr + 1;
for (String fieldName : fieldNames) {
exportParamsMap.put("num" + serialNum,"");
exportParamsMap.put(fieldName + serialNum, ""); // 使用空字符串填充空白项
}
}
......@@ -2016,4 +2056,48 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
}
});
}
public void useDateHandler() {
List<JgUseRegistrationEq> jgUseRegistrationEqs = jgRelationEquipMapper.selectList(new QueryWrapper<>());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
jgUseRegistrationEqs.forEach(eq -> {
LambdaQueryWrapper<JgUseRegistration> lambda = new QueryWrapper<JgUseRegistration>().lambda();
lambda.eq(JgUseRegistration::getSequenceNbr, eq.getEquipTransferId());
JgUseRegistration jgUseRegistration = jgUseRegistrationMapper.selectOne(lambda);
boolean isFinish = "已完成".equals(jgUseRegistration.getStatus());
// isFinish ? 修改使用信息表中的use_date字段值为审核通过时间 : 修改使用信息表中的use_date字段值为单子发起时间
IdxBizJgUseInfo idxBizJgUseInfo = useInfoMapper.selectOne(new LambdaQueryWrapper<IdxBizJgUseInfo>()
.eq(IdxBizJgUseInfo::getRecord, eq.getEquId()));
idxBizJgUseInfo.setUseDate(isFinish ?
(ValidationUtil.isEmpty(jgUseRegistration.getAuditPassDate()) ? "" : sdf.format(jgUseRegistration.getAuditPassDate())) :
(ValidationUtil.isEmpty(jgUseRegistration.getRecDate()) ? "" : sdf.format(jgUseRegistration.getRecDate())));
// isFinish ? 修增加历史表表中的useDate字段值为审核通过时间 : 修增加历史表表中的useDate字段值为单子发起时间
JgRegistrationHistory jgRegistrationHistory = jgRegistrationHistoryService.getBaseMapper()
.selectOne(new QueryWrapper<JgRegistrationHistory>().lambda()
.eq(JgRegistrationHistory::getCurrentDocumentId, jgUseRegistration.getSequenceNbr()));
JSONObject json = JSONObject.parseObject(jgRegistrationHistory.getChangeData());
json.put("useDate", isFinish ?
(ValidationUtil.isEmpty(jgUseRegistration.getAuditPassDate()) ? "" : sdf.format(jgUseRegistration.getAuditPassDate())) :
(ValidationUtil.isEmpty(jgUseRegistration.getRecDate()) ? "" : sdf.format(jgUseRegistration.getRecDate())));
// 填充安装单位和安装年月
if ("8300".equals(json.get("EQU_CATEGORY_CODE")) && "unit".equals(json.get("manageType"))){
// 填充历史
JSONArray jsonArray = (JSONArray) json.get("equipmentLists");
for (Object obj : jsonArray) {
List<ConstructionInfo> constructionInfos = constructionInfoMapper.selectList(new LambdaQueryWrapper<ConstructionInfo>()
.eq(ConstructionInfo::getRecord, eq.getEquId())
.orderByDesc(ConstructionInfo::getUscDate));
ConstructionInfo result = CollectionUtils.isEmpty(constructionInfos) ? new ConstructionInfo() : constructionInfos.get(0);
JSONObject jsonObject = (JSONObject) obj;
jsonObject.put("uscUnitName",result.getUscUnitName());
jsonObject.put("uscDate",ValidationUtil.isEmpty(result.getUscDate()) ? "" : YearMonth.from(LocalDateTime.parse(result.getUscDate(), inputFormatter)).toString());
}
}
jgRegistrationHistory.setChangeData(JSONObject.toJSONString(json));
jgRegistrationHistoryService.getBaseMapper().updateById(jgRegistrationHistory);
});
}
}
\ No newline at end of file
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