|
|
@@ -1,26 +1,19 @@
|
|
|
package cn.start.tz.module.pressure2.service.tasksign;
|
|
|
|
|
|
-import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
-import cn.start.tz.framework.common.exception.ErrorCode;
|
|
|
import cn.start.tz.framework.common.exception.ServiceException;
|
|
|
import cn.start.tz.framework.common.pojo.PageResult;
|
|
|
import cn.start.tz.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|
|
import cn.start.tz.module.infra.api.file.FileApi;
|
|
|
import cn.start.tz.module.infra.api.sign.SignApi;
|
|
|
-import cn.start.tz.module.infra.api.sign.dto.CntSignReqDTO;
|
|
|
-import cn.start.tz.module.infra.api.sign.dto.CntSignResponseRepsDTO;
|
|
|
-import cn.start.tz.module.infra.api.sign.dto.QrCodeValuesDTO;
|
|
|
-import cn.start.tz.module.infra.api.sign.dto.SignValuesDTO;
|
|
|
import cn.start.tz.module.pressure2.constant.TemplateIdConstants;
|
|
|
import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.BoilerTaskOrderSyncReportVO;
|
|
|
-import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.MajorIssuesSubmitVO;
|
|
|
import cn.start.tz.module.pressure2.controller.admin.boilertaskordersignfile.vo.BoilerTaskOrderSignFilePageReqVO;
|
|
|
import cn.start.tz.module.pressure2.controller.admin.boilertaskordersignfile.vo.BoilerTaskOrderSignFileRespVO;
|
|
|
import cn.start.tz.module.pressure2.controller.admin.dynamictbins.vo.CreateInstantiateWithRuleVO;
|
|
|
-import cn.start.tz.module.pressure2.controller.admin.pipetaskorderinput.vo.PipeTaskOrderInputPrintReqVO;
|
|
|
import cn.start.tz.module.pressure2.controller.app.taskorder.vo.ServeOrderSignRespVo;
|
|
|
import cn.start.tz.module.pressure2.controller.appapi.boilertaskorder.vo.OrderFromPdfReqVO;
|
|
|
+import cn.start.tz.module.pressure2.controller.appapi.boilertaskorder.vo.TaskOrderAppPushReqVO;
|
|
|
import cn.start.tz.module.pressure2.controller.appapi.boilertaskorder.vo.TaskOrderPushReqVO;
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.boilerconnecttbservice.BoilerConnectTbServiceDO;
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorder.BoilerTaskOrderDO;
|
|
|
@@ -42,21 +35,16 @@ import cn.start.tz.module.pressure2.dal.mysql.orderreport.OrderReportMapper;
|
|
|
import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreport.PipeTaskOrderItemReportMapper;
|
|
|
import cn.start.tz.module.pressure2.dal.mysql.pipetaskordersecuritycheck.PipeTaskOrderSecurityCheckMapper;
|
|
|
import cn.start.tz.module.pressure2.service.boilertaskorder.BoilerTaskOrderService;
|
|
|
-import cn.start.tz.module.pressure2.service.boilertaskordersecuritycheck.BoilerTaskOrderSecurityCheckService;
|
|
|
import cn.start.tz.module.pressure2.service.boilertaskordersignfile.BoilerTaskOrderSignFileService;
|
|
|
import cn.start.tz.module.pressure2.service.dynamictbins.DynamicTbInsService;
|
|
|
-import cn.start.tz.module.pressure2.service.notificationformreport.NotificationformReportService;
|
|
|
import cn.start.tz.module.pressure2.service.orderreport.OrderReportService;
|
|
|
+import cn.start.tz.framework.ip.core.utils.AreaUtils;
|
|
|
import cn.start.tz.module.pressure2.service.pipetaskorder.PipeTaskOrderService;
|
|
|
import cn.start.tz.module.pressure2.service.pdf.PdfService;
|
|
|
import cn.start.tz.module.pressure2.service.pipetaskorderinput.PipeTaskOrderInputService;
|
|
|
import cn.start.tz.module.system.api.user.AdminUserApi;
|
|
|
-import cn.start.tz.module.system.api.user.dto.AdminUserRespDTO;
|
|
|
import cn.start.tz.module.system.enums.common.IsYesOrNoEnum;
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
-import com.google.common.collect.Lists;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import jakarta.validation.Valid;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
@@ -68,6 +56,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import java.awt.image.BufferedImage;
|
|
|
import java.io.ByteArrayInputStream;
|
|
|
import java.io.ByteArrayOutputStream;
|
|
|
+import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
@@ -79,8 +68,6 @@ import org.apache.pdfbox.pdmodel.PDDocument;
|
|
|
import org.apache.pdfbox.rendering.PDFRenderer;
|
|
|
|
|
|
import static cn.start.tz.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
|
-import static cn.start.tz.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
|
|
|
-import static cn.start.tz.module.pressure.enums.ErrorCodeConstants.TASK_ORDER_NOT_EXISTS;
|
|
|
import static java.time.LocalDate.now;
|
|
|
|
|
|
@Service
|
|
|
@@ -347,6 +334,18 @@ public class TaskSignServiceImpl implements TaskSignService {
|
|
|
resp.setEquipDistrict(vo.getEquipDistrict());
|
|
|
resp.setEquipStreet(vo.getEquipStreet());
|
|
|
resp.setCheckType(StringUtils.isNotBlank(vo.getCheckType()) ? Integer.valueOf(vo.getCheckType()) : null);
|
|
|
+ if (StringUtils.isNotBlank(vo.getCheckDate())) {
|
|
|
+ resp.setCheckDate(LocalDate.parse(vo.getCheckDate()));
|
|
|
+ }
|
|
|
+ String districtName = AreaUtils.getAreaName(vo.getEquipDistrict());
|
|
|
+ String streetName = AreaUtils.getAreaName(vo.getEquipStreet());
|
|
|
+ if (StringUtils.isNotBlank(districtName) && StringUtils.isNotBlank(streetName)) {
|
|
|
+ resp.setAddressInfo(districtName + "-" + streetName);
|
|
|
+ } else if (StringUtils.isNotBlank(districtName)) {
|
|
|
+ resp.setAddressInfo(districtName);
|
|
|
+ } else if (StringUtils.isNotBlank(streetName)) {
|
|
|
+ resp.setAddressInfo(streetName);
|
|
|
+ }
|
|
|
resp.setSignUrl(vo.getSignUrl());
|
|
|
resp.setSignFilePdf(vo.getSignFilePdf());
|
|
|
resp.setIsSignature(vo.getIsSignature());
|
|
|
@@ -501,97 +500,78 @@ public class TaskSignServiceImpl implements TaskSignService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 服务单文件下载(小程序)
|
|
|
- *
|
|
|
- * @param reqVO 参数
|
|
|
- * @return 结果
|
|
|
- */
|
|
|
+ @Transactional
|
|
|
@Override
|
|
|
- public String printFromPdfDownload(OrderFromPdfReqVO reqVO) {
|
|
|
- String filePath = null;
|
|
|
-// try {
|
|
|
-// BoilerTaskOrderDO taskOrderDO = boilerTaskOrderMapper.selectById(reqVO.getOrderId());
|
|
|
-// if (ObjectUtil.isEmpty(taskOrderDO)) {
|
|
|
-// throw exception(TASK_ORDER_NOT_EXISTS);
|
|
|
-// }
|
|
|
-//
|
|
|
-//// TaskOrderFileVersionDO taskOrderFileVersionDO = orderFileVersionService.selectLastOneByOrderIdAndBusinessType(reqVO.getOrderId(), reqVO.getBusinessType(), reqVO.getOrderItemId(), reqVO.getSecurityCheckId());
|
|
|
-//// if (ObjectUtil.isEmpty(taskOrderFileVersionDO)) {
|
|
|
-//// throw exception(new ErrorCode(1000, "任务单相关文件版本不存在"));
|
|
|
-//// }
|
|
|
-//
|
|
|
-//// String notifierSignImageData = null;
|
|
|
-//// //业务类型=400并且告知人-签名人用户id不为空
|
|
|
-//// if (Integer.valueOf(400).equals(taskOrderFileVersionDO.getBusinessType()) && StringUtils.isNotEmpty(taskOrderFileVersionDO.getNotifierUserId())) {
|
|
|
-//// AdminUserRespDTO checkedData = adminUserApi.getUser(taskOrderFileVersionDO.getNotifierUserId()).getCheckedData();
|
|
|
-//// if (ObjectUtil.isNotEmpty(checkedData) && StringUtils.isNotEmpty(checkedData.getSignUrl())) {
|
|
|
-//// notifierSignImageData = checkedData.getSignUrl();
|
|
|
-//// }
|
|
|
-//// }
|
|
|
-//
|
|
|
-// //获取任务单签名文件信息
|
|
|
-// BoilerTaskOrderSignFileDO taskOrderSignFileDO = boilerTaskOrderSignFileService.selectLastOneByOrderIdAndBusinessType(taskOrderDO.getId(), reqVO.getBusinessType(), reqVO.getOrderItemId(), reqVO.getSecurityCheckId());
|
|
|
-// if (ObjectUtil.isNotEmpty(taskOrderSignFileDO) && StringUtils.isNotEmpty(taskOrderSignFileDO.getSignUrl())) {
|
|
|
-// ByteArrayOutputStream byteArrayOutputStream = null;
|
|
|
-// byte[] imageData = fileApi.getFileByPath(taskOrderSignFileDO.getSignUrl()).getData();
|
|
|
-// PipeTaskOrderInputPrintReqVO printReqVO = new PipeTaskOrderInputPrintReqVO();
|
|
|
-// if (Integer.valueOf(100).equals(taskOrderSignFileDO.getBusinessType())) {
|
|
|
-// List<OrderReportDO> orderReportDOS = orderReportMapper.selectList(OrderReportDO::getTaskOrderId, taskOrderDO.getId());
|
|
|
-// OrderReportDO orderReportDO = orderReportDOS.get(0);
|
|
|
-// printReqVO.setId(orderReportDO.getId());
|
|
|
-// printReqVO.setTemplateId(orderReportDO.getTemplateId());
|
|
|
-// } else if (Integer.valueOf(200).equals(taskOrderSignFileDO.getBusinessType())) {
|
|
|
-//
|
|
|
-// } else if (Integer.valueOf(300).equals(taskOrderSignFileDO.getBusinessType()) || Integer.valueOf(400).equals(taskOrderSignFileDO.getBusinessType())) {
|
|
|
-// }
|
|
|
-// byteArrayOutputStream = pipeTaskOrderInputService.printPipeTaskOrderInput(printReqVO);
|
|
|
-//
|
|
|
-// if (Objects.equals(env, "uat") && Integer.valueOf(100).equals(taskOrderSignFileDO.getBusinessType())) {
|
|
|
-// if (Integer.valueOf(100).equals(reqVO.getBusinessType())) {
|
|
|
-// List<SignValuesDTO> valuesDTOList = Lists.newArrayList();
|
|
|
-// SignValuesDTO valuesDTO1 = new SignValuesDTO();
|
|
|
-// valuesDTO1.setTextonce(0);
|
|
|
-// if (Integer.valueOf(200).equals(taskOrderDO.getCheckType())) {
|
|
|
-// valuesDTO1.setSealType("6");
|
|
|
-// valuesDTO1.setText("机构公章或");
|
|
|
-// } else {
|
|
|
-// valuesDTO1.setSealType("6");
|
|
|
-// valuesDTO1.setText("机构公章或");
|
|
|
-// }
|
|
|
-// valuesDTOList.add(valuesDTO1);
|
|
|
-// byte[] byteUrl = this.sign(byteArrayOutputStream.toByteArray(), valuesDTOList, null);
|
|
|
-// //上传至资源服务器并获取url
|
|
|
-// filePath = fileApi.createFile(byteUrl);
|
|
|
-// LambdaUpdateWrapper<BoilerTaskOrderSignFileDO> updateWrapper = new LambdaUpdateWrapper<>();
|
|
|
-// updateWrapper.eq(BoilerTaskOrderSignFileDO::getId, taskOrderSignFileDO.getId());
|
|
|
-// updateWrapper.set(BoilerTaskOrderSignFileDO::getSignFilePdf, filePath);
|
|
|
-// boilerTaskOrderSignFileService.update(updateWrapper);
|
|
|
-// }
|
|
|
-// } else {
|
|
|
-// filePath = fileApi.createFile(byteArrayOutputStream.toByteArray());
|
|
|
-// LambdaUpdateWrapper<BoilerTaskOrderSignFileDO> updateWrapper = new LambdaUpdateWrapper<>();
|
|
|
-// updateWrapper.eq(BoilerTaskOrderSignFileDO::getId, taskOrderSignFileDO.getId());
|
|
|
-// updateWrapper.set(BoilerTaskOrderSignFileDO::getSignFilePdf, filePath);
|
|
|
-// boilerTaskOrderSignFileService.update(updateWrapper);
|
|
|
-// }
|
|
|
-// } else {
|
|
|
-// throw exception(new ErrorCode(1000, "不存在签名信息pdf下载失败"));
|
|
|
-// }
|
|
|
-// } catch (Exception e) {
|
|
|
-// throw new RuntimeException(e);
|
|
|
-// }
|
|
|
- return filePath;
|
|
|
- }
|
|
|
+ public void orderAppSignSubmit(TaskOrderAppPushReqVO reqVO) throws Exception {
|
|
|
+ // 根据id查询任务单
|
|
|
+ BoilerTaskOrderDO taskOrderDO = boilerTaskOrderMapper.selectById(reqVO.getId());
|
|
|
+ // 如果任务单不存在,抛出异常
|
|
|
+ if (taskOrderDO == null) {
|
|
|
+ throw new ServiceException(404, "任务单不存在");
|
|
|
+ }
|
|
|
|
|
|
-// private byte[] sign(byte[] bytes, List<SignValuesDTO> valuesDTOList, QrCodeValuesDTO qrCodeValuesDTO) throws Exception {
|
|
|
-// CntSignReqDTO signReqDTO = new CntSignReqDTO();
|
|
|
-// signReqDTO.setBytes(bytes);
|
|
|
-// signReqDTO.setValuesDTOList(valuesDTOList);
|
|
|
-// signReqDTO.setQrCodeValuesDTO(qrCodeValuesDTO);
|
|
|
-// CntSignResponseRepsDTO signRepsDTO = signApi.sign(signReqDTO).getCheckedData();
|
|
|
-// String signUrl = signRepsDTO.getRecord_saved_urls().get(0);
|
|
|
-// log.info("signUrl:" + signUrl);
|
|
|
-// return signApi.getSignFile(signUrl).getCheckedData();
|
|
|
-// }
|
|
|
+ if (reqVO.getBusinessType().equals(100)) {
|
|
|
+ OrderReportDO byId = orderReportService.getById(reqVO.getOrderReportId());
|
|
|
+ byId.setSignDate(now());
|
|
|
+ byId.setSignUrl(reqVO.getSignUrl());
|
|
|
+ if (taskOrderDO.getEquipMainType().equals(200)) {
|
|
|
+ orderReportService.generateBoilerOrderReport(taskOrderDO.getAcceptOrderId());
|
|
|
+ } else {
|
|
|
+ orderReportService.generatePipeOrderReport(taskOrderDO.getAcceptOrderId());
|
|
|
+ }
|
|
|
+ } else if (reqVO.getBusinessType().equals(200)) {
|
|
|
+ List<NotificationformReportDO> formReportDOS = notificationformReportMapper
|
|
|
+ .selectList(NotificationformReportDO::getTaskOrderId, taskOrderDO.getId());
|
|
|
+ NotificationformReportDO notificationformReportDO = formReportDOS.get(0);
|
|
|
+ if (notificationformReportDO != null){
|
|
|
+ notificationformReportDO.setSignUrl(reqVO.getSignUrl());
|
|
|
+ notificationformReportDO.setSignDate(now());
|
|
|
+ }
|
|
|
+ if (taskOrderDO.getEquipMainType().equals(200)) {
|
|
|
+ formReportDOS.forEach(formReportDO -> {
|
|
|
+ JSONObject params = new JSONObject();
|
|
|
+ params.put("equipMainType", "boiler");
|
|
|
+ DynamicTbDO dynamicTbDO = dynamicTbMapper.selectById(formReportDO.getTemplateId());
|
|
|
+ CreateInstantiateWithRuleVO ruleVO = new CreateInstantiateWithRuleVO();
|
|
|
+ ruleVO.setTemplateId(formReportDO.getTemplateId());
|
|
|
+ ruleVO.setRefId(formReportDO.getId());
|
|
|
+ ruleVO.setRefName(dynamicTbDO.getTbName());
|
|
|
+ ruleVO.setReportType(1);
|
|
|
+ ruleVO.setParams(params);
|
|
|
+ //获取tbCode的服务方法名
|
|
|
+ BoilerConnectTbServiceDO tbServiceDO = boilerConnectTbServiceMapper.selectOne(BoilerConnectTbServiceDO::getTbId, dynamicTbDO.getId());
|
|
|
+ if (tbServiceDO != null) {
|
|
|
+ ruleVO.setServiceName(tbServiceDO.getInitServiceName());
|
|
|
+ dynamicTbInsService.createInstantiateWithRule(ruleVO);
|
|
|
+ } else {
|
|
|
+ //throw new ServiceException(500, "生成报表数据失败,初始化服务方法未配置");
|
|
|
+ ruleVO.setServiceName("");
|
|
|
+ dynamicTbInsService.createInstantiateWithRule(ruleVO);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else if (taskOrderDO.getEquipMainType().equals(300)) {
|
|
|
+ formReportDOS.forEach(formReportDO -> {
|
|
|
+ JSONObject params = new JSONObject();
|
|
|
+ params.put("equipMainType", "pipe");
|
|
|
+ DynamicTbDO dynamicTbDO = dynamicTbMapper.selectById(formReportDO.getTemplateId());
|
|
|
+ CreateInstantiateWithRuleVO ruleVO = new CreateInstantiateWithRuleVO();
|
|
|
+ ruleVO.setTemplateId(formReportDO.getTemplateId());
|
|
|
+ ruleVO.setRefId(formReportDO.getId());
|
|
|
+ ruleVO.setRefName(dynamicTbDO.getTbName());
|
|
|
+ ruleVO.setReportType(1);
|
|
|
+ ruleVO.setParams(params);
|
|
|
+ //获取tbCode的服务方法名
|
|
|
+ BoilerConnectTbServiceDO tbServiceDO = boilerConnectTbServiceMapper.selectOne(BoilerConnectTbServiceDO::getTbId, dynamicTbDO.getId());
|
|
|
+ if (tbServiceDO != null) {
|
|
|
+ ruleVO.setServiceName(tbServiceDO.getInitServiceName());
|
|
|
+ dynamicTbInsService.createInstantiateWithRule(ruleVO);
|
|
|
+ } else {
|
|
|
+ //throw new ServiceException(500, "生成报表数据失败,初始化服务方法未配置");
|
|
|
+ ruleVO.setServiceName("");
|
|
|
+ dynamicTbInsService.createInstantiateWithRule(ruleVO);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|