package com.gkhy.safePlatform.specialWork.service.impl;
|
|
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.model.query.db.WorkAnalysisRecordValInfoDO;
|
import com.gkhy.safePlatform.specialWork.service.WorkHotPrintService;
|
import com.gkhy.safePlatform.specialWork.service.baseService.*;
|
import com.gkhy.safePlatform.specialWork.util.WorkPrintShiftUtil;
|
import org.apache.commons.collections.CollectionUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
@Service("WorkHotPrintService")
|
public class WorkHotPrintServiceImpl implements WorkHotPrintService {
|
@Autowired
|
private WorkApprovalUnitInfoService workApprovalUnitInfoService;
|
@Autowired
|
private WorkApprovalStepInfoService workApprovalStepInfoService;
|
@Autowired
|
private WorkApprovalFilledItemInfoService workApprovalFilledItemInfoService;
|
@Autowired
|
private WorkApprovalItemInfoService workApprovalItemInfoService;
|
@Autowired
|
private WorkApprovalItemMeasureInfoService workApprovalItemMeasureInfoService;
|
@Autowired
|
private WorkHotInfoService workHotInfoService;
|
@Autowired
|
private WorkApplyOperatorInfoService workApplyOperatorInfoService;
|
|
@Autowired
|
private WorkAnalysisRecordValInfoService analysisRecordValInfoService;
|
|
|
public Map<String,Object> workHotPrint(WorkApplyInfo workApplyInfo,WorkInfo workInfo){
|
|
//获取层级
|
List<WorkApprovalStepInfo> workApprovalStepInfoList = workApprovalStepInfoService.listApprovalRuleStepByWorkApplyId(workApplyInfo.getId());
|
//审批单元
|
List<WorkApprovalUnitInfo> workApprovalUnitInfoList = workApprovalUnitInfoService.listApprovalRuleUnitByWorkApplyId(workApplyInfo.getId());
|
//获取审批项
|
List<WorkApprovalItemInfo> workApprovalItemInfoList = workApprovalItemInfoService.listWorkApprovalItemByWorkApplyId(workApplyInfo.getId());
|
//获取审批项填报
|
List<WorkApprovalFilledItemInfo> workApprovalFilledItemInfoList = workApprovalFilledItemInfoService.listApprovalFilledItemInfoByWorkApplyId(workApplyInfo.getId());
|
//获取安全措施项
|
List<WorkApprovalItemMeasureInfo> workApprovalItemMeasureInfoList = workApprovalItemMeasureInfoService.listWorkApprovalItemMeasureByWorkApplyId(workApplyInfo.getId());
|
//动火作业
|
WorkHotInfo workHotInfo = workHotInfoService.getById(workApplyInfo.getWorkDetailId());
|
//获取作业人
|
List<WorkApplyOperatorInfo> workApplyOperatorInfoList = workApplyOperatorInfoService.listWorkOperatorByWorkApplyId(workApplyInfo.getId());
|
//获取分析数据
|
List<WorkAnalysisRecordValInfoDO> workAnalysisRecordValInfoList = analysisRecordValInfoService.listRecordValByWorkApplyId(workApplyInfo.getId());
|
|
//基础数据
|
Map<String,String> baseDataMap=new HashMap<>();
|
baseDataMap.put("applydepName",workApplyInfo.getDepName());
|
baseDataMap.put("applyUname",workApplyInfo.getApplyUname());
|
baseDataMap.put("workCode",workApplyInfo.getWorkPermitNo());
|
baseDataMap.put("workLevel",WorkLevelEnum.parse(workApplyInfo.getWorkLevel()).getTitle());
|
baseDataMap.put("workMethod",workHotInfo.getHotMethod());
|
baseDataMap.put("addressAndContent",workApplyInfo.getWorkLocation() + " " + workApplyInfo.getWorkContent());
|
baseDataMap.put("workTime","自"+ WorkPrintShiftUtil.shiftTime(workApplyInfo.getExpStartTime())+"至"+WorkPrintShiftUtil.shiftTime(workApplyInfo.getExpEndTime())+"止");
|
baseDataMap.put("operatorNames",WorkPrintShiftUtil.shiftOperators(workApplyOperatorInfoList));
|
baseDataMap.put("otherSpeicialWork",workHotInfo.getOtherSpecialWork());
|
baseDataMap.put("harm",workApplyInfo.getHazardIdentification());
|
//分析数据
|
List<Map<String,String>> anList = new ArrayList<>();
|
if (!CollectionUtils.isEmpty(workAnalysisRecordValInfoList)) {
|
for (WorkAnalysisRecordValInfoDO recordValInfoDO : workAnalysisRecordValInfoList){
|
Map<String,String> map = new HashMap<>();
|
map.put("anaAddress", recordValInfoDO.getAnalysisLocation());
|
map.put("anaItemName", recordValInfoDO.getItemName());
|
map.put("anaData", recordValInfoDO.getVal().toString());
|
map.put("anaResult",AnalysisRecordResultEnum.parse(recordValInfoDO.getResult()).getValue());
|
map.put("anaUname", recordValInfoDO.getAnalystUname());
|
map.put("anaTime", WorkPrintShiftUtil.shiftTime(recordValInfoDO.getGmtCreate()));
|
anList.add(map);
|
}
|
}
|
|
//安全措施数据
|
List<Map<String, String>> meList = new ArrayList<>();
|
//普通人员数据
|
List<Map<String, String>> apList = new ArrayList<>();
|
//遍历层级
|
for (WorkApprovalStepInfo stepInfo : workApprovalStepInfoList) {
|
|
//监护人层级 || 普通人员审核层级
|
if(!stepInfo.getPersonType().equals(ApprovalStepPersonTypeEnum.TYPE_ANALYST.getType())){
|
//获取审批人
|
List<WorkApprovalUnitInfo> 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<WorkApprovalItemInfo> itemList = workApprovalItemInfoList
|
.stream()
|
.filter(item -> item.getStepId().equals(stepInfo.getId()))
|
.collect(Collectors.toList());
|
//遍历审批项
|
for (WorkApprovalItemInfo itemInfo : itemList) {
|
//获取该审批对应措施
|
List<WorkApprovalItemMeasureInfo> 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<WorkApprovalFilledItemInfo> fillItemList = workApprovalFilledItemInfoList
|
.stream()
|
.filter(fillItem -> fillItem.getItemId().equals(itemInfo.getId()))
|
.collect(Collectors.toList());
|
|
//遍历审批人 获取审批数据 填充
|
for(WorkApprovalUnitInfo unitInfo: approvalUnitList) {
|
String measureContext = workApprovalItemMeasureInfo.getContext();
|
//获取审批人填写的审批数据
|
List<WorkApprovalFilledItemInfo> 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<String,String> 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<String,String> 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<String,String> 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<String,String> 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);
|
|
|
// docx模板文件输入输出地址
|
//String filePath = "/docxTemplate/workhot.docx";
|
String filePath = "/pdfHtmlTemplate/workhot.html";
|
if(StringUtils.isBlank(filePath)){
|
throw new BusinessException("200","模板不存在!");
|
}
|
//综合数据
|
Map<String,Object> dataMap = new HashMap<>();
|
dataMap.put("baseData",baseDataMap);
|
dataMap.put("approval",apList);
|
dataMap.put("measure",meList);
|
dataMap.put("analysis",anList);
|
dataMap.put("text",workApplyInfo.getWorkPermitNo());
|
dataMap.put("filePath",filePath);
|
dataMap.put("workCode",workApplyInfo.getWorkPermitNo());
|
|
return dataMap;
|
}
|
|
}
|