|
|
@@ -0,0 +1,123 @@
|
|
|
+package cn.start.tz.module.pressure2.service.dynamicOFData.boiler;
|
|
|
+
|
|
|
+import cn.start.tz.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|
|
+import cn.start.tz.module.pressure2.controller.admin.dynamictbins.vo.CreateInstantiateWithRuleVO;
|
|
|
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorder.BoilerTaskOrderDO;
|
|
|
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitem.BoilerTaskOrderItemDO;
|
|
|
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemreport.BoilerTaskOrderItemReportDO;
|
|
|
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemreportuser.BoilerTaskOrderItemReportUserDO;
|
|
|
+import cn.start.tz.module.pressure2.dal.dataobject.equipboiler.EquipBoilerDO;
|
|
|
+import cn.start.tz.module.pressure2.dal.dataobject.equipboilerpressurepart.EquipBoilerPressurePartDO;
|
|
|
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorder.BoilerTaskOrderMapper;
|
|
|
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitem.BoilerTaskOrderItemMapper;
|
|
|
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitemreport.BoilerTaskOrderItemReportMapper;
|
|
|
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitemreportuser.BoilerTaskOrderItemReportUserMapper;
|
|
|
+import cn.start.tz.module.pressure2.dal.mysql.equipboiler.EquipBoilerMapper;
|
|
|
+import cn.start.tz.module.pressure2.dal.mysql.equipboilerpressurepart.EquipBoilerPressurePartMapper;
|
|
|
+import cn.start.tz.module.pressure2.service.dynamicOFData.IDynamicOFData;
|
|
|
+import cn.start.tz.module.pressure2.service.dynamicOFData.util.AutoDataBoilerService;
|
|
|
+import cn.start.tz.module.pressure2.service.dynamicOFData.util.GenerateReportJsonService;
|
|
|
+import cn.start.tz.module.system.api.user.AdminUserApi;
|
|
|
+import cn.start.tz.module.system.api.user.dto.AdminUserRespDTO;
|
|
|
+import com.alibaba.fastjson2.JSONObject;
|
|
|
+import jakarta.annotation.Resource;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 电站锅炉主要受压元件一览表报告
|
|
|
+ */
|
|
|
+@Service("QC10063_202402ReportOFData")
|
|
|
+public class QC10063_202402ReportOFData implements IDynamicOFData {
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private BoilerTaskOrderItemReportMapper boilerTaskOrderItemReportMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private BoilerTaskOrderItemMapper boilerTaskOrderItemMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private EquipBoilerMapper equipBoilerMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private AutoDataBoilerService autoDataBoilerService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private GenerateReportJsonService generateReportJsonService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private EquipBoilerPressurePartMapper equipBoilerPressurePartMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private BoilerTaskOrderItemReportUserMapper boilerTaskOrderItemReportUserMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private AdminUserApi adminUserApi;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private BoilerTaskOrderMapper boilerTaskOrderMapper;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public JSONObject getOFData(JSONObject params) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public JSONObject getOfDataByVO(CreateInstantiateWithRuleVO ruleVO) {
|
|
|
+ //设备报表ID
|
|
|
+ String refId = ruleVO.getRefId();
|
|
|
+
|
|
|
+ DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
|
|
|
+
|
|
|
+ JSONObject result = new JSONObject();
|
|
|
+ BoilerTaskOrderItemReportDO itemReportDO = boilerTaskOrderItemReportMapper.selectById(refId);
|
|
|
+
|
|
|
+ if (itemReportDO != null) {
|
|
|
+ String orderItemId = itemReportDO.getOrderItemId();
|
|
|
+ BoilerTaskOrderDO taskOrderDO = boilerTaskOrderMapper.selectById(itemReportDO.getOrderId());
|
|
|
+ BoilerTaskOrderItemDO itemDO = boilerTaskOrderItemMapper.selectById(orderItemId);
|
|
|
+
|
|
|
+ result = generateReportJsonService.generateReportFromRecord(ruleVO.getReportType(), ruleVO.getTemplateId(), refId);
|
|
|
+ result = autoDataBoilerService.autoGenerateBoilerReportData(result, refId);
|
|
|
+
|
|
|
+ // 获取参与检验的人员列表
|
|
|
+ List<BoilerTaskOrderItemReportUserDO> itemReportUserDOS = boilerTaskOrderItemReportUserMapper.selectList(BoilerTaskOrderItemReportUserDO::getReportId, itemReportDO.getId());
|
|
|
+ if (taskOrderDO != null) {
|
|
|
+ result.put("checkDate", taskOrderDO.getCheckDate().format(dateFormat));
|
|
|
+ } else {
|
|
|
+ result.put("checkDate", "-");
|
|
|
+ }
|
|
|
+ if (!itemReportUserDOS.isEmpty()) {
|
|
|
+ AdminUserRespDTO userInfo = adminUserApi.getUser(itemReportUserDOS.get(0).getUserId()).getData();
|
|
|
+ if (userInfo != null) {
|
|
|
+ result.put("checkName", userInfo.getSignUrl());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ EquipBoilerDO equipBoilerDO = equipBoilerMapper.selectById(itemDO.getEquipId());
|
|
|
+ if (equipBoilerDO != null) {
|
|
|
+
|
|
|
+ //受压元件
|
|
|
+ List<EquipBoilerPressurePartDO> equipBoilerPressurePartDOList = equipBoilerPressurePartMapper.selectList(new LambdaQueryWrapperX<EquipBoilerPressurePartDO>()
|
|
|
+ .eq(EquipBoilerPressurePartDO::getBoilerId, equipBoilerDO.getId()));
|
|
|
+ if (!equipBoilerPressurePartDOList.isEmpty()){
|
|
|
+ for (int i = 0; i < equipBoilerPressurePartDOList.size(); i++){
|
|
|
+
|
|
|
+ EquipBoilerPressurePartDO partDO = equipBoilerPressurePartDOList.get(i);
|
|
|
+ result.put("value1_"+(i+1),String.valueOf(i+1));
|
|
|
+ result.put("value2_"+(i+1),partDO.getPartName());
|
|
|
+ result.put("value3_"+(i+1),partDO.getSpecification());
|
|
|
+ result.put("value4_"+(i+1),partDO.getMaterial());
|
|
|
+ result.put("value5_"+(i+1),partDO.getRemark());
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+}
|