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.service.WorkTemporaryPowerPrintService;
|
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("WorkTemporaryPowerPrintService")
|
public class WorkTemporaryPowerPrintServiceImpl implements WorkTemporaryPowerPrintService {
|
@Autowired
|
private WorkApprovalUnitInfoService workApprovalUnitInfoService;
|
@Autowired
|
private WorkApprovalStepInfoService workApprovalStepInfoService;
|
@Autowired
|
private WorkApprovalFilledItemInfoService workApprovalFilledItemInfoService;
|
@Autowired
|
private WorkApprovalItemInfoService workApprovalItemInfoService;
|
@Autowired
|
private WorkApprovalItemMeasureInfoService workApprovalItemMeasureInfoService;
|
@Autowired
|
private WorkTemporaryPowerInfoService workTemporaryPowerInfoService;
|
@Autowired
|
private WorkApplyOperatorInfoService workApplyOperatorInfoService;
|
|
|
public Map<String,Object> workTemporaryPowerPrint(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());
|
//临时用电作业
|
WorkTemporaryPowerInfo workTemporaryPowerInfo = workTemporaryPowerInfoService.getById(workApplyInfo.getWorkDetailId());
|
//获取作业人
|
List<WorkApplyOperatorInfo> workApplyOperatorInfoList = workApplyOperatorInfoService.listWorkOperatorByWorkApplyId(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("workTime","自"+ WorkPrintShiftUtil.shiftTime(workApplyInfo.getExpStartTime())+"至"+WorkPrintShiftUtil.shiftTime(workApplyInfo.getExpEndTime())+"止");
|
baseDataMap.put("workLocation",workApplyInfo.getWorkLocation());
|
baseDataMap.put("powerAccessPoint",workTemporaryPowerInfo.getPowerAccessPoint());
|
baseDataMap.put("workVoltage",workTemporaryPowerInfo.getWorkingVoltage()+"V");
|
baseDataMap.put("equipmentAndPower",workTemporaryPowerInfo.getEquipmentAndPower());
|
baseDataMap.put("operatorNames",WorkPrintShiftUtil.shiftOperators(workApplyOperatorInfoList));
|
baseDataMap.put("harm",workApplyInfo.getHazardIdentification());
|
|
//安全措施数据
|
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);
|
|
// 模板文件输入输出地址
|
// String filePath = "/docxTemplate/workTemporaryPower.docx";
|
String filePath = "/pdfHtmlTemplate/workTemporaryPower.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("text",workApplyInfo.getWorkPermitNo());
|
dataMap.put("filePath",filePath);
|
dataMap.put("fileName",WorkTypeEnum.parse(workApplyInfo.getWorkType()).getName());
|
dataMap.put("workCode",workApplyInfo.getWorkPermitNo());
|
return dataMap;
|
}
|
}
|