package com.gkhy.safePlatform.specialWork.service.impl; import com.gkhy.safePlatform.commons.enums.E; import com.gkhy.safePlatform.commons.exception.AusinessException; import com.gkhy.safePlatform.commons.exception.BusinessException; import com.gkhy.safePlatform.commons.utils.StringUtils; import com.gkhy.safePlatform.specialWork.entity.*; import com.gkhy.safePlatform.specialWork.enums.*; import com.gkhy.safePlatform.specialWork.service.WorkBlindPlatePluggingPrintService; import com.gkhy.safePlatform.specialWork.service.baseService.*; import com.gkhy.safePlatform.specialWork.util.WorkPrintShiftUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletResponse; import java.util.*; import java.util.stream.Collectors; @Service("WorkBlindPlatePluggingPrintService") public class WorkBlindPlatePluggingPrintServiceImpl implements WorkBlindPlatePluggingPrintService { @Autowired private WorkApprovalUnitInfoService workApprovalUnitInfoService; @Autowired private WorkApprovalStepInfoService workApprovalStepInfoService; @Autowired private WorkApprovalFilledItemInfoService workApprovalFilledItemInfoService; @Autowired private WorkApprovalItemInfoService workApprovalItemInfoService; @Autowired private WorkApprovalItemMeasureInfoService workApprovalItemMeasureInfoService; @Autowired private WorkBlindPlatePluggingInfoService workBlindPlatePluggingInfoService; @Autowired private WorkApplyOperatorInfoService workApplyOperatorInfoService; public Map workBlindPlatePluggingPrint(WorkApplyInfo workApplyInfo, WorkInfo workInfo){ //获取层级 List workApprovalStepInfoList = workApprovalStepInfoService.listApprovalRuleStepByWorkApplyId(workApplyInfo.getId()); //审批单元 List workApprovalUnitInfoList = workApprovalUnitInfoService.listApprovalRuleUnitByWorkApplyId(workApplyInfo.getId()); //获取审批项 List workApprovalItemInfoList = workApprovalItemInfoService.listWorkApprovalItemByWorkApplyId(workApplyInfo.getId()); //获取审批项填报 List workApprovalFilledItemInfoList = workApprovalFilledItemInfoService.listApprovalFilledItemInfoByWorkApplyId(workApplyInfo.getId()); //获取安全措施项 List workApprovalItemMeasureInfoList = workApprovalItemMeasureInfoService.listWorkApprovalItemMeasureByWorkApplyId(workApplyInfo.getId()); //盲板作业 WorkBlindPlatePluggingInfo workBlindPlatePluggingInfo = workBlindPlatePluggingInfoService.getById(workApplyInfo.getWorkDetailId()); //获取作业人 List workApplyOperatorInfoList = workApplyOperatorInfoService.listWorkOperatorByWorkApplyId(workApplyInfo.getId()); //基础数据 Map baseDataMap=new HashMap<>(); baseDataMap.put("applydepName",workApplyInfo.getDepName()); baseDataMap.put("applyUname",workApplyInfo.getApplyUname()); baseDataMap.put("workCode",workApplyInfo.getWorkPermitNo()); baseDataMap.put("mainMedia",workBlindPlatePluggingInfo.getMainMedia()); baseDataMap.put("temperature",String.valueOf(workBlindPlatePluggingInfo.getTemperature() == null ? 0.0 : workBlindPlatePluggingInfo.getTemperature())+"℃"); baseDataMap.put("pressure",String.valueOf(workBlindPlatePluggingInfo.getPressure() == null ? 0.0 : workBlindPlatePluggingInfo.getPressure())+"kPa"); baseDataMap.put("bpMq",workBlindPlatePluggingInfo.getBpMaterialQuality()); baseDataMap.put("bpSp",workBlindPlatePluggingInfo.getBpSpecification()); baseDataMap.put("bpCode",workBlindPlatePluggingInfo.getBpCode()); baseDataMap.put("workTime","自"+ WorkPrintShiftUtil.shiftTime(workApplyInfo.getExpStartTime())+"至"+WorkPrintShiftUtil.shiftTime(workApplyInfo.getExpEndTime())+"止"); baseDataMap.put("operatorNames",WorkPrintShiftUtil.shiftOperators(workApplyOperatorInfoList)); //安全措施数据 List> meList = new ArrayList<>(); //普通人员数据 List> apList = new ArrayList<>(); //遍历层级 for (WorkApprovalStepInfo stepInfo : workApprovalStepInfoList) { //监护人层级 || 普通人员审核层级 if(!stepInfo.getPersonType().equals(ApprovalStepPersonTypeEnum.TYPE_ANALYST.getType())){ //获取审批人 List approvalUnitList = workApprovalUnitInfoList .stream() .filter(unit -> unit.getStepId().equals(stepInfo.getId()) && unit.getResult().equals(WorkApprovalUnitResultEnum.RESULT_SUCCESS.getResult())) .collect(Collectors.toList()); //审批项审批(一般是安全措施) if(stepInfo.getContainItem()){ //定义序号变量 int index = 1; //过滤审批项 List itemList = workApprovalItemInfoList .stream() .filter(item -> item.getStepId().equals(stepInfo.getId())) .collect(Collectors.toList()); //遍历审批项 for (WorkApprovalItemInfo itemInfo : itemList) { //获取该审批对应措施 List measureList = workApprovalItemMeasureInfoList .stream() .filter(measure -> measure.getId().equals(itemInfo.getMeasureId())) .collect(Collectors.toList()); WorkApprovalItemMeasureInfo workApprovalItemMeasureInfo = new WorkApprovalItemMeasureInfo(); if(measureList.size()>0){ workApprovalItemMeasureInfo = measureList.get(0); } //获取该审批项对应的审批数据 List fillItemList = workApprovalFilledItemInfoList .stream() .filter(fillItem -> fillItem.getItemId().equals(itemInfo.getId())) .collect(Collectors.toList()); //遍历审批人 获取审批数据 填充 for(WorkApprovalUnitInfo unitInfo: approvalUnitList) { String measureContext = workApprovalItemMeasureInfo.getContext(); //获取审批人填写的审批数据 List unitFillItemList = fillItemList .stream() .filter(fillItem -> fillItem.getUnitId().equals(unitInfo.getId())) .collect(Collectors.toList()); WorkApprovalFilledItemInfo workApprovalFilledItemInfo = new WorkApprovalFilledItemInfo(); if (unitFillItemList.size() > 0) { workApprovalFilledItemInfo = unitFillItemList.get(0); } //填空 if(RuleItemTypeEnum.parse(itemInfo.getType()).equals(RuleItemTypeEnum.FILL)){ if(measureContext.indexOf("_")>0){//存在,替换 measureContext = measureContext.replace("_",workApprovalFilledItemInfo.getMeasureText()); }else {//不存在,加载后面 measureContext = measureContext + workApprovalFilledItemInfo.getMeasureText(); } Map map = new HashMap<>(); map.put("index", String.valueOf(index)); map.put("measure", measureContext); map.put("mResult", "√"); map.put("mUname", unitInfo.getApprovalUname()); meList.add(map); index++; }else{//选项 Map map = new HashMap<>(); map.put("index", String.valueOf(index)); map.put("measure", workApprovalItemMeasureInfo.getContext()); map.put("mUname", unitInfo.getApprovalUname()); if(workApprovalFilledItemInfo.getMeasureVal().equals(WorkRuleMeasureOptEnum.UNINVOLVED.getType())){ map.put("mResult", WorkRuleMeasureOptEnum.parse(workApprovalFilledItemInfo.getMeasureVal()).getDesc()); }else{ if(workApprovalFilledItemInfo.getMeasureVal().equals(WorkRuleMeasureOptEnum.YES.getType())){ map.put("mResult", "√"); } if(workApprovalFilledItemInfo.getMeasureVal().equals(WorkRuleMeasureOptEnum.NO.getType())){ map.put("mResult", "×"); } } meList.add(map); index++; } } } } //简单审批 if(!stepInfo.getContainItem()){ //遍历审批人 for (WorkApprovalUnitInfo unitInfo : approvalUnitList) { Map map = new HashMap<>(); map.put("apprStepName", stepInfo.getStepName()); map.put("apprOpinion", unitInfo.getFillContent()); map.put("apprUname", unitInfo.getApprovalUname()); map.put("apResult", WorkApprovalStepResultEnum.parse(stepInfo.getApprovalResult()).getDesc()); map.put("apprSign", unitInfo.getApprovalUname()); map.put("apprTime",WorkPrintShiftUtil.shiftTime(unitInfo.getApprovalActualTime())); apList.add(map); } } } } //添加验收人 Map map = new HashMap<>(); map.put("apprStepName", "完工验收"); map.put("apprOpinion", workInfo.getWorkAcceptContent()); map.put("apprUname", workInfo.getAcceptUname()); map.put("apResult", WorkingAcceptStatusEnum.parse(workInfo.getWorkAcceptStatus()).getValue()); map.put("apprSign", workInfo.getAcceptUname()); map.put("apprTime",WorkPrintShiftUtil.shiftTime(workInfo.getWorkAcceptTime())); apList.add(map); // 模板文件输入输出地址 String filePath = "/pdfHtmlTemplate/workBlindPlatePlugging.html"; if(StringUtils.isBlank(filePath)){ throw new AusinessException(E.EXPORT_FAIL,"模板不存在!"); } //综合数据 Map dataMap = new HashMap<>(); dataMap.put("baseData",baseDataMap); dataMap.put("approval",apList); dataMap.put("measure",meList); dataMap.put("text",workApplyInfo.getWorkPermitNo()); dataMap.put("filePath",filePath); dataMap.put("fileName",WorkTypeEnum.parse(workApplyInfo.getWorkType()).getName()); dataMap.put("workCode",workApplyInfo.getWorkPermitNo()); return dataMap; } }