|
@@ -15,8 +15,15 @@ import cn.start.tz.module.pressure2.controller.admin.pipetaskorderitemreport.vo.
|
|
|
import cn.start.tz.module.pressure2.controller.admin.pipetaskorderitemreport.vo.PipeTaskOrderItemReportSignReqVO;
|
|
import cn.start.tz.module.pressure2.controller.admin.pipetaskorderitemreport.vo.PipeTaskOrderItemReportSignReqVO;
|
|
|
import cn.start.tz.module.pressure2.controller.admin.pipetaskorderitemreport.vo.PipeTaskOrderItemReportSignRespVO;
|
|
import cn.start.tz.module.pressure2.controller.admin.pipetaskorderitemreport.vo.PipeTaskOrderItemReportSignRespVO;
|
|
|
import cn.start.tz.module.pressure2.controller.app.taskorderitemreport.vo.InspectionOpinionUploadReqVo;
|
|
import cn.start.tz.module.pressure2.controller.app.taskorderitemreport.vo.InspectionOpinionUploadReqVo;
|
|
|
|
|
+import cn.start.tz.module.pressure2.dal.dataobject.equippipe.EquipPipeDO;
|
|
|
|
|
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorder.PipeTaskOrderDO;
|
|
|
|
|
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitem.PipeTaskOrderItemDO;
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreport.PipeTaskOrderItemReportDO;
|
|
import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreport.PipeTaskOrderItemReportDO;
|
|
|
|
|
+import cn.start.tz.module.pressure2.dal.mysql.equippipe.EquipPipeMapper;
|
|
|
|
|
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorder.PipeTaskOrderMapper;
|
|
|
|
|
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitem.PipeTaskOrderItemMapper;
|
|
|
import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreport.PipeTaskOrderItemReportMapper;
|
|
import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreport.PipeTaskOrderItemReportMapper;
|
|
|
|
|
+import cn.start.tz.module.pressure2.framework.appauth.core.context.AppAuthContextHolder;
|
|
|
import cn.start.tz.module.pressure2.service.pipetaskorder.PipeTaskOrderService;
|
|
import cn.start.tz.module.pressure2.service.pipetaskorder.PipeTaskOrderService;
|
|
|
import jakarta.annotation.Resource;
|
|
import jakarta.annotation.Resource;
|
|
|
import jodd.util.StringUtil;
|
|
import jodd.util.StringUtil;
|
|
@@ -50,9 +57,18 @@ public class PipeAppTaskOrderItemReportServiceImpl implements PipeAppTaskOrderIt
|
|
|
@Resource
|
|
@Resource
|
|
|
private PipeTaskOrderService pipeTaskOrderService;
|
|
private PipeTaskOrderService pipeTaskOrderService;
|
|
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private PipeTaskOrderMapper pipeTaskOrderMapper;
|
|
|
|
|
+
|
|
|
@Resource
|
|
@Resource
|
|
|
private PipeTaskOrderItemReportMapper pipeTaskOrderItemReportMapper;
|
|
private PipeTaskOrderItemReportMapper pipeTaskOrderItemReportMapper;
|
|
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private PipeTaskOrderItemMapper pipeTaskOrderItemMapper;
|
|
|
|
|
+
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private EquipPipeMapper equipPipeMapper;
|
|
|
|
|
+
|
|
|
@Resource
|
|
@Resource
|
|
|
private RedissonClient redissonClient;
|
|
private RedissonClient redissonClient;
|
|
|
|
|
|
|
@@ -169,6 +185,96 @@ public class PipeAppTaskOrderItemReportServiceImpl implements PipeAppTaskOrderIt
|
|
|
return result;
|
|
return result;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public PageResult<PipeTaskOrderItemReportSignRespVO> appUnsignedPage(PipeTaskOrderItemReportPageReqVO pageReqVO) {
|
|
|
|
|
+ // 获取当前登录用户手机号
|
|
|
|
|
+ String mobile = AppAuthContextHolder.getMobile();
|
|
|
|
|
+ if (StringUtils.isEmpty(mobile)) {
|
|
|
|
|
+ return new PageResult<>();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 查询当前用户未签名的数据(isSign=true 且 signUrl 为空 且 recipientPhone 匹配)
|
|
|
|
|
+ PageResult<PipeTaskOrderItemReportDO> pageResult = pipeTaskOrderItemReportMapper.selectPage(pageReqVO,
|
|
|
|
|
+ new LambdaQueryWrapperX<PipeTaskOrderItemReportDO>()
|
|
|
|
|
+ .eq(PipeTaskOrderItemReportDO::getIsSign, true)
|
|
|
|
|
+ .and(wrapper -> wrapper
|
|
|
|
|
+ .isNull(PipeTaskOrderItemReportDO::getSignUrl)
|
|
|
|
|
+ .or()
|
|
|
|
|
+ .eq(PipeTaskOrderItemReportDO::getSignUrl, ""))
|
|
|
|
|
+ .eq(PipeTaskOrderItemReportDO::getRecipientPhone, mobile));
|
|
|
|
|
+
|
|
|
|
|
+ return convertToSignRespVO(pageResult);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public PageResult<PipeTaskOrderItemReportSignRespVO> appSignedPage(PipeTaskOrderItemReportPageReqVO pageReqVO) {
|
|
|
|
|
+ // 获取当前登录用户手机号
|
|
|
|
|
+ String mobile = AppAuthContextHolder.getMobile();
|
|
|
|
|
+ if (StringUtils.isEmpty(mobile)) {
|
|
|
|
|
+ return new PageResult<>();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 查询当前用户已签名的数据(isSign=true 且 signUrl 不为空 且 recipientPhone 匹配)
|
|
|
|
|
+ PageResult<PipeTaskOrderItemReportDO> pageResult = pipeTaskOrderItemReportMapper.selectPage(pageReqVO,
|
|
|
|
|
+ new LambdaQueryWrapperX<PipeTaskOrderItemReportDO>()
|
|
|
|
|
+ .eq(PipeTaskOrderItemReportDO::getIsSign, true)
|
|
|
|
|
+ .isNotNull(PipeTaskOrderItemReportDO::getSignUrl)
|
|
|
|
|
+ .ne(PipeTaskOrderItemReportDO::getSignUrl, "")
|
|
|
|
|
+ .eq(PipeTaskOrderItemReportDO::getRecipientPhone, mobile));
|
|
|
|
|
+
|
|
|
|
|
+ return convertToSignRespVO(pageResult);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 转换签名响应VO
|
|
|
|
|
+ */
|
|
|
|
|
+ private PageResult<PipeTaskOrderItemReportSignRespVO> convertToSignRespVO(PageResult<PipeTaskOrderItemReportDO> pageResult) {
|
|
|
|
|
+ List<PipeTaskOrderItemReportSignRespVO> voList = new ArrayList<>();
|
|
|
|
|
+ if (pageResult.getList() != null) {
|
|
|
|
|
+ for (PipeTaskOrderItemReportDO reportDO : pageResult.getList()) {
|
|
|
|
|
+ PipeTaskOrderItemReportSignRespVO signVO = new PipeTaskOrderItemReportSignRespVO();
|
|
|
|
|
+ BeanUtils.copyProperties(reportDO, signVO);
|
|
|
|
|
+ signVO.setSignDate(reportDO.getSignDate());
|
|
|
|
|
+ signVO.setSignUrl(reportDO.getSignUrl());
|
|
|
|
|
+ // 设置 isSign 字段(Boolean 转 String)
|
|
|
|
|
+ signVO.setIsSign(reportDO.getIsSign() != null && reportDO.getIsSign() ? "1" : "0");
|
|
|
|
|
+ // 设置 templateId
|
|
|
|
|
+ signVO.setTemplateId(reportDO.getTemplateId());
|
|
|
|
|
+
|
|
|
|
|
+ // 从设备表获取关联数据
|
|
|
|
|
+ if (StringUtils.isNotEmpty(reportDO.getOrderItemId())) {
|
|
|
|
|
+ PipeTaskOrderItemDO orderItem = pipeTaskOrderItemMapper.selectById(reportDO.getOrderItemId());
|
|
|
|
|
+ if (orderItem != null) {
|
|
|
|
|
+ // 设置 equipCode(来自 orderItem)
|
|
|
|
|
+ signVO.setEquipCode(orderItem.getEquipCode());
|
|
|
|
|
+ // 获取任务单信息
|
|
|
|
|
+ if (StringUtils.isNotEmpty(orderItem.getOrderId())) {
|
|
|
|
|
+ PipeTaskOrderDO taskOrder = pipeTaskOrderMapper.selectById(orderItem.getOrderId());
|
|
|
|
|
+ if (taskOrder != null) {
|
|
|
|
|
+ signVO.setOrderNo(taskOrder.getOrderNo());
|
|
|
|
|
+ signVO.setUseUnitName(taskOrder.getUseUnitName());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // 获取设备信息
|
|
|
|
|
+ if (StringUtils.isNotEmpty(orderItem.getEquipId())) {
|
|
|
|
|
+ EquipPipeDO equip = equipPipeMapper.selectById(orderItem.getEquipId());
|
|
|
|
|
+ if (equip != null) {
|
|
|
|
|
+ signVO.setEquipName(equip.getProjectName());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ voList.add(signVO);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ PageResult<PipeTaskOrderItemReportSignRespVO> result = new PageResult<>();
|
|
|
|
|
+ result.setTotal(pageResult.getTotal());
|
|
|
|
|
+ result.setList(voList);
|
|
|
|
|
+ return result;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public void appOrderItemSign(PipeTaskOrderItemReportSignReqVO reqVO) {
|
|
public void appOrderItemSign(PipeTaskOrderItemReportSignReqVO reqVO) {
|
|
|
PipeTaskOrderItemReportDO reportDO = pipeTaskOrderItemReportMapper.selectById(reqVO.getReportId());
|
|
PipeTaskOrderItemReportDO reportDO = pipeTaskOrderItemReportMapper.selectById(reqVO.getReportId());
|