package com.gk.hotwork.specialWork.service.impl; import com.gk.hotwork.Domain.Exception.BusinessException; import com.gk.hotwork.Domain.Exception.E; import com.gk.hotwork.specialWork.entity.WorkApplyInfo; import com.gk.hotwork.specialWork.enums.WorkTypeEnum; import com.gk.hotwork.specialWork.service.*; import com.gk.hotwork.specialWork.util.WorkExportUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletResponse; import java.util.HashMap; import java.util.Map; @Service("WorkPrintService") public class WorkPrintServiceImpl implements WorkPrintService { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired private WorkHotPrintService workHotPrintService; @Autowired private WorkBlindPlatePluggingPrintService workBlindPlatePluggingPrintService; @Autowired private WorkAtHeightPrintService workAtHeightPrintService; @Autowired private WorkConfinedSpacePrintService workConfinedSpacePrintService; @Autowired private WorkBrokenCircuitPrintService workBrokenCircuitPrintService; @Autowired private WorkGroundBreakingPrintService workGroundBreakingPrintService; @Autowired private WorkHoistingPrintService workHoistingPrintService; @Autowired private WorkTemporaryPowerPrintService workTemporaryPowerPrintService; /** * 作业打印 * @param workApplyInfo */ public void workPrint(HttpServletResponse response, WorkApplyInfo workApplyInfo){ Map dataMap = new HashMap<>(); switch (WorkTypeEnum.parse(workApplyInfo.getWorkType())) { case WORK_FIRE: exportWork(response,workHotPrintService.workHotPrint(workApplyInfo)); break; case WORK_CLOSE_SPACE: exportWork(response,workConfinedSpacePrintService.workConfinedSpacePrint(response,workApplyInfo)); break; case WORK_BLIND_PLATE: exportWork(response,workBlindPlatePluggingPrintService.workBlindPlatePluggingPrint(response,workApplyInfo)); break; case WORK_BROKE_ROAD: exportWork(response,workBrokenCircuitPrintService.workBrokenCircuitPrint(response,workApplyInfo)); break; case WORK_DIF_SOLI: exportWork(response,workGroundBreakingPrintService.workGroundBreakingPrint(response,workApplyInfo)); break; case WORK_HIGH_SPACE: exportWork(response,workAtHeightPrintService.workAtHeightPrint(response,workApplyInfo)); break; case WORK_HANG: exportWork(response,workHoistingPrintService.workHoistingPrint(response,workApplyInfo)); break; case WORK_TEMP_ELECTRIC: exportWork(response,workTemporaryPowerPrintService.workTemporaryPowerPrint(response,workApplyInfo)); break; } } public void exportWork(HttpServletResponse response,Map dataMap){ try{ WorkExportUtil workExportUtil = new WorkExportUtil(); workExportUtil.setTempLocalPath((String)dataMap.get("filePath")); //设置模板的路径 workExportUtil.init(); //初始化工具类 workExportUtil.export(dataMap); //写入相关数据 workExportUtil.responseWord(response,(String)dataMap.get("fileName"),(String)dataMap.get("workCode")); }catch (BusinessException e) { e.printStackTrace(); throw new BusinessException(e.getCode(), e.getMessage()); }catch (Exception e){ logger.error("导出失败!",e); throw new BusinessException(E.EXPORT_FAIL,"导出失败!"); } } }