package com.gk.hotwork.specialWork.service.impl;
|
|
import com.gk.hotwork.Domain.Enum.ResultCodes;
|
import com.gk.hotwork.Domain.Exception.BusinessException;
|
import com.gk.hotwork.Domain.Utils.StringUtils;
|
import com.gk.hotwork.Domain.Vo.ResultVO;
|
import com.gk.hotwork.Domain.dto.DepInfoRPCRespDTO;
|
import com.gk.hotwork.Service.Middle.AccountDepartmentService;
|
import com.gk.hotwork.specialWork.entity.*;
|
import com.gk.hotwork.specialWork.enums.*;
|
import com.gk.hotwork.specialWork.service.WorkBrokenCircuitPrintService;
|
import com.gk.hotwork.specialWork.service.WorkTemporaryPowerPrintService;
|
import com.gk.hotwork.specialWork.service.baseService.*;
|
import com.gk.hotwork.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(HttpServletResponse response, WorkApplyInfo workApplyInfo){
|
|
//获取层级
|
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",workApplyInfo.getOperatorUnames());
|
baseDataMap.put("harm",workApplyInfo.getHazardIdentification());
|
|
//分析数据
|
List<Map<String,String>> anList = new ArrayList<>();
|
//获取分析人层级数据
|
List<WorkApprovalStepInfo> analystStepList = workApprovalStepInfoList
|
.stream()
|
.filter(step -> step.getType().equals(ApprovalStepTypeEnum.TYPE_ANALYST.getType()))
|
.collect(Collectors.toList());
|
if(analystStepList.size()>0){
|
//获取参与审核分析人
|
List<WorkApprovalUnitInfo> analysUnitList = workApprovalUnitInfoList
|
.stream()
|
.filter(unit -> unit.getStepId().equals(analystStepList.get(0).getId()) && unit.getResult().equals(WorkApprovalUnitResultEnum.RESULT_SUCCESS.getResult()))
|
.collect(Collectors.toList());
|
WorkApprovalUnitInfo unitInfo = new WorkApprovalUnitInfo();
|
if(analysUnitList.size()>0){
|
unitInfo = analysUnitList.get(0);
|
}
|
//获取审批项
|
List<WorkApprovalItemInfo> analystItemList = workApprovalItemInfoList
|
.stream()
|
.filter(item -> item.getStepId().equals(analystStepList.get(0).getId()))
|
.collect(Collectors.toList());
|
|
//填入数据
|
for (WorkApprovalItemInfo itemInfo : analystItemList) {
|
//获取审批项填入对应数据
|
List<WorkApprovalFilledItemInfo> fillList = workApprovalFilledItemInfoList
|
.stream()
|
.filter(fillItem -> fillItem.getItemId().equals(itemInfo.getId()))
|
.collect(Collectors.toList());
|
WorkApprovalFilledItemInfo workApprovalFilledItemInfo = new WorkApprovalFilledItemInfo();
|
if(fillList.size()>0){
|
workApprovalFilledItemInfo = fillList.get(0);
|
}
|
Map<String,String> map = new HashMap<>();
|
map.put("anaAddress", workApprovalFilledItemInfo.getAnalysisLocation());
|
map.put("anaItemName", itemInfo.getItemName());
|
map.put("anaData", workApprovalFilledItemInfo.getVal().toString()+"%");
|
map.put("anaResult", WorkApprovalUnitResultEnum.parse(unitInfo.getResult()).getDesc());
|
map.put("anaUname", unitInfo.getApprovalUname());
|
map.put("anaTime", WorkPrintShiftUtil.shiftTime(unitInfo.getApprovalActualTime()));
|
anList.add(map);
|
|
}
|
}
|
//安全措施数据
|
List<Map<String, String>> meList = new ArrayList<>();
|
//遍历层级 获取安全措施层级
|
for (WorkApprovalStepInfo stepInfo : workApprovalStepInfoList) {
|
if(!ApprovalStepTypeEnum.TYPE_ANALYST.getType().equals(stepInfo.getType())){//非分析人审批人
|
//过滤审批项
|
List<WorkApprovalItemInfo> itemList = workApprovalItemInfoList
|
.stream()
|
.filter(item -> item.getStepId().equals(stepInfo.getId()))
|
.collect(Collectors.toList());
|
if(itemList.size()>0 ){
|
if(null != itemList.get(0).getMeasureId()){//措施id不为空则为安全措施项
|
//定义序号变量
|
int index = 1;
|
|
//获取该层审批人
|
List<WorkApprovalUnitInfo> itemUnitList = workApprovalUnitInfoList
|
.stream()
|
.filter(unit -> unit.getStepId().equals(stepInfo.getId()) && unit.getResult().equals(WorkApprovalUnitResultEnum.RESULT_SUCCESS.getResult()))
|
.collect(Collectors.toList());
|
//选择类型使用
|
//审批人审批结果
|
String approvalResult = "";
|
//生成审批人字符串
|
/* StringBuffer stringBuffer = new StringBuffer();
|
for (WorkApprovalUnitInfo unitInfo : itemUnitList) {
|
stringBuffer.append(unitInfo.getApprovalUname()).append(",");
|
if(StringUtils.isBlank(approvalResult)){
|
//赋值
|
approvalResult = WorkApprovalUnitResultEnum.parse(unitInfo.getResult()).getDesc();
|
}
|
}
|
stringBuffer.deleteCharAt(stringBuffer.toString().length()-1);*/
|
|
//遍历审批项
|
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: itemUnitList) {
|
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", WorkApprovalUnitResultEnum.parse(unitInfo.getResult()).getDesc());
|
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{
|
map.put("mResult", WorkApprovalUnitResultEnum.parse(unitInfo.getResult()).getDesc());
|
}
|
meList.add(map);
|
index++;
|
}
|
|
}
|
|
}
|
|
}
|
}
|
}
|
}
|
|
//审批层数据
|
List<Map<String, String>> apList = new ArrayList<>();
|
//排序
|
workApprovalStepInfoList.sort(Comparator.comparing(WorkApprovalStepInfo::getStepSerial));
|
//遍历层级
|
for (WorkApprovalStepInfo stepInfo: workApprovalStepInfoList) {
|
if(!ApprovalStepTypeEnum.TYPE_ANALYST.getType().equals(stepInfo.getType())){//非分析人审批人
|
//获取该层审批项
|
List<WorkApprovalItemInfo> itemList = workApprovalItemInfoList
|
.stream()
|
.filter(item -> item.getStepId().equals(stepInfo.getId()))
|
.collect(Collectors.toList());
|
//获取审批人
|
List<WorkApprovalUnitInfo> approvalUnitList = workApprovalUnitInfoList
|
.stream()
|
.filter(unit -> unit.getStepId().equals(stepInfo.getId()) && unit.getResult().equals(WorkApprovalUnitResultEnum.RESULT_SUCCESS.getResult()))
|
.collect(Collectors.toList());
|
|
if(itemList.size() == 0){//无审批项
|
//遍历审批人
|
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);
|
|
}
|
}
|
}
|
}
|
// 模板文件输入输出地址
|
String filePath = "/docxTemplate/workTemporaryPower.docx";
|
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("fileName",WorkTypeEnum.parse(workApplyInfo.getWorkType()).getName());
|
dataMap.put("workCode",workApplyInfo.getWorkPermitNo());
|
|
// 模板文件输入输出地址
|
// String outPath = "F:/test/workTemporaryPower示例文档.docx";
|
// WorkExportUtil workExportUtil = new WorkExportUtil();
|
// workExportUtil.setTempLocalPath(filePath); //设置模板的路径
|
// workExportUtil.init(); //初始化工具类
|
// workExportUtil.export(dataMap); //写入相关数据
|
// workExportUtil.generate(outPath); //导出到目标文档
|
|
return dataMap;
|
}
|
}
|