From b8c8a81faf7223eead20de48f3056a3a6b98d36f Mon Sep 17 00:00:00 2001 From: anthonywj Date: Tue, 30 May 2023 10:27:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A1=A8=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/trace/UdiTraceController.java | 16 +---- .../entity/trace/TraceManuOrderEntity.java | 7 ++ .../api/entity/trace/TraceOrderEntity.java | 6 +- .../trace/TraceProductDetailEntity.java | 5 ++ .../entity/trace/TraceTaskNoticeEntity.java | 6 +- .../service/trace/TraceTaskNoticeService.java | 19 ++++++ .../api/service/trace/UdiTraceService.java | 68 ++++++++++++++----- 7 files changed, 92 insertions(+), 35 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/trace/UdiTraceController.java b/src/main/java/com/glxp/api/controller/trace/UdiTraceController.java index 5340ec2..78ed9b1 100644 --- a/src/main/java/com/glxp/api/controller/trace/UdiTraceController.java +++ b/src/main/java/com/glxp/api/controller/trace/UdiTraceController.java @@ -47,8 +47,7 @@ public class UdiTraceController extends BaseController { GennerOrderUtils gennerOrderUtils; @Resource TraceTaskNoticeService traceTaskNoticeService; - @Resource - RabbitPushService rabbitPushService; + @Resource TraceOrderService traceOrderService; @Resource @@ -148,19 +147,10 @@ public class UdiTraceController extends BaseController { //5.创建查询详情记录,若存在相同查询记录则直接获取 traceProductDetailEntity = udiTraceService.createTracerProductByBatchNo(traceRecordRequest, 1, 2, basicUdiRelResponse); + } - //5.创建查询任务表 - TraceTaskNoticeEntity traceTaskNoticeEntity = udiTraceService.createTraceNotice(1, traceProductDetailEntity, basicUdiRelResponse, udiEntity); - - //6.构建MQ推送消息 - MqTraceMessage mqTraceMessage = new MqTraceMessage(); - mqTraceMessage.setCreateTime(new Date()); - mqTraceMessage.setTaskType(1); - mqTraceMessage.setCompanyId(basicUdiRelResponse.getCompanyIdFk()); - mqTraceMessage.setCerditNo(userCompanyEntity.getCreditNum()); - mqTraceMessage.setTaskId(traceTaskNoticeEntity.getId()); - rabbitPushService.send(mqTraceMessage); + return ResultVOUtils.success(traceRecordLogEntity); } diff --git a/src/main/java/com/glxp/api/entity/trace/TraceManuOrderEntity.java b/src/main/java/com/glxp/api/entity/trace/TraceManuOrderEntity.java index 870cade..a8f893e 100644 --- a/src/main/java/com/glxp/api/entity/trace/TraceManuOrderEntity.java +++ b/src/main/java/com/glxp/api/entity/trace/TraceManuOrderEntity.java @@ -102,5 +102,12 @@ public class TraceManuOrderEntity implements Serializable { @TableField(value = "uploadUser") private Long uploadUser; + /** + * 查询产品记录号外键 + */ + @TableField(value = "traceProductIdFk") + private Long traceProductIdFk; + + private static final long serialVersionUID = 1L; } diff --git a/src/main/java/com/glxp/api/entity/trace/TraceOrderEntity.java b/src/main/java/com/glxp/api/entity/trace/TraceOrderEntity.java index 6f7b848..b15d4a3 100644 --- a/src/main/java/com/glxp/api/entity/trace/TraceOrderEntity.java +++ b/src/main/java/com/glxp/api/entity/trace/TraceOrderEntity.java @@ -139,10 +139,10 @@ public class TraceOrderEntity implements Serializable { @TableField(value = "updateTime") private Date updateTime; /** - * 查询记录号外键 + * 查询产品记录号外键 */ - @TableField(value = "recordCode") - private String recordCode; + @TableField(value = "traceProductIdFk") + private Long traceProductIdFk; private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/glxp/api/entity/trace/TraceProductDetailEntity.java b/src/main/java/com/glxp/api/entity/trace/TraceProductDetailEntity.java index 50934a6..1f856a0 100644 --- a/src/main/java/com/glxp/api/entity/trace/TraceProductDetailEntity.java +++ b/src/main/java/com/glxp/api/entity/trace/TraceProductDetailEntity.java @@ -97,6 +97,11 @@ public class TraceProductDetailEntity implements Serializable { @TableField(value = "status") private Integer status; + /** + * 生产订单信息处理状态 1:未处理;2:未结束;3:已完成 + */ + @TableField(value = "manuStatus") + private Integer manuStatus; private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/glxp/api/entity/trace/TraceTaskNoticeEntity.java b/src/main/java/com/glxp/api/entity/trace/TraceTaskNoticeEntity.java index 70ecfb8..81f8b6f 100644 --- a/src/main/java/com/glxp/api/entity/trace/TraceTaskNoticeEntity.java +++ b/src/main/java/com/glxp/api/entity/trace/TraceTaskNoticeEntity.java @@ -23,11 +23,11 @@ public class TraceTaskNoticeEntity implements Serializable { /** * 查询记录表ID外键 */ - @TableField(value = "recordCode") - private Long recordCode; + @TableField(value = "produdctRecordIdFk") + private Long produdctRecordIdFk; /** - * 任务类型1:关联关系;2:入库;3:出库 + * 任务类型 1:关联关系;2:出入库 */ @TableField(value = "taskType") private Integer taskType; diff --git a/src/main/java/com/glxp/api/service/trace/TraceTaskNoticeService.java b/src/main/java/com/glxp/api/service/trace/TraceTaskNoticeService.java index 64a87c1..7f02ede 100644 --- a/src/main/java/com/glxp/api/service/trace/TraceTaskNoticeService.java +++ b/src/main/java/com/glxp/api/service/trace/TraceTaskNoticeService.java @@ -1,10 +1,29 @@ package com.glxp.api.service.trace; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.glxp.api.entity.trace.TraceTaskNoticeEntity; import com.glxp.api.dao.trace.TraceTaskNoticeMapper; + +import javax.annotation.Resource; +import java.util.List; + @Service public class TraceTaskNoticeService extends ServiceImpl { + @Resource + TraceTaskNoticeMapper traceTaskNoticeMapper; + + public TraceTaskNoticeEntity findTask(Integer taskType, Long produdctRecordIdFk) { + List taskNoticeEntities = traceTaskNoticeMapper. + selectList(new QueryWrapper().eq("taskType", taskType).eq("produdctRecordIdFk", produdctRecordIdFk).last("limit 1")); + if (CollUtil.isNotEmpty(taskNoticeEntities)) { + return taskNoticeEntities.get(0); + } else + return null; + + } + } diff --git a/src/main/java/com/glxp/api/service/trace/UdiTraceService.java b/src/main/java/com/glxp/api/service/trace/UdiTraceService.java index 9c6ab29..b9abebd 100644 --- a/src/main/java/com/glxp/api/service/trace/UdiTraceService.java +++ b/src/main/java/com/glxp/api/service/trace/UdiTraceService.java @@ -2,7 +2,7 @@ package com.glxp.api.service.trace; import cn.hutool.core.util.IdUtil; import com.glxp.api.entity.basic.UdiEntity; -import com.glxp.api.entity.sup.UserCompanyEntity; +import com.glxp.api.entity.trace.MqTraceMessage; import com.glxp.api.entity.trace.TraceProductDetailEntity; import com.glxp.api.entity.trace.TraceRecordLogEntity; import com.glxp.api.entity.trace.TraceTaskNoticeEntity; @@ -11,7 +11,6 @@ import com.glxp.api.res.basic.BasicUdiRelResponse; import com.glxp.api.service.basic.BasicUdiProductService; import com.glxp.api.service.basic.BasicUdiRelService; import com.glxp.api.util.GennerOrderUtils; -import com.glxp.api.util.udi.FilterUdiUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -36,6 +35,8 @@ public class UdiTraceService { TraceProductDetailService traceProductDetailService; @Resource TraceTaskNoticeService traceTaskNoticeService; + @Resource + RabbitPushService rabbitPushService; //创建查询日志 public TraceRecordLogEntity createRecordLog(String userId, Integer fromType, Integer traceType) { @@ -100,34 +101,69 @@ public class UdiTraceService { return traceProductDetailEntity; } + @Resource + TraceManuOrderService traceManuOrderService; + //创建任务列表 - public void createTraceTask() { + public void createTraceTask(TraceProductDetailEntity traceProductDetailEntity, Long companyId) { + + + //1.查询生产订单信息是否已上传 + if (traceProductDetailEntity.getManuStatus() != 3) { + //生产订单关联关系 + if (traceProductDetailEntity.getManuStatus() == 2) { + TraceTaskNoticeEntity taskNoticeEntity = traceTaskNoticeService.findTask(1, traceProductDetailEntity.getId()); + if (taskNoticeEntity == null) { + createTraceNotice(1, traceProductDetailEntity, companyId); + pushMq(traceProductDetailEntity, companyId); + } else if (taskNoticeEntity.getStatus() == 4) { + //任务超时未处理,重新推送消息 + pushMq(traceProductDetailEntity, companyId); + } + } + } + + //2.查询出入库单消息是否已经上传 + } //创建任务列表 - public TraceTaskNoticeEntity createTraceNotice(Integer taskType, TraceProductDetailEntity traceProductDetailEntity, BasicUdiRelResponse basicUdiRelResponse, UdiEntity udiEntity) { + public TraceTaskNoticeEntity createTraceNotice(Integer taskType, TraceProductDetailEntity traceProductDetailEntity, Long companyId) { TraceTaskNoticeEntity traceTaskNoticeEntity = new TraceTaskNoticeEntity(); traceTaskNoticeEntity.setId(IdUtil.getSnowflakeNextId()); - traceTaskNoticeEntity.setRecordCode(traceProductDetailEntity.getId()); + traceTaskNoticeEntity.setProdudctRecordIdFk(traceProductDetailEntity.getId()); traceTaskNoticeEntity.setTaskType(taskType); traceTaskNoticeEntity.setStatus(1); - traceTaskNoticeEntity.setCompanyIdFk(basicUdiRelResponse.getCompanyIdFk()); - traceTaskNoticeEntity.setYlqxzcrbarmc(basicUdiRelResponse.getYlqxzcrbarmc()); - traceTaskNoticeEntity.setCreditNum(basicUdiRelResponse.getTyshxydm()); - traceTaskNoticeEntity.setCpmctymc(basicUdiRelResponse.getCpmctymc()); - traceTaskNoticeEntity.setGgxh(basicUdiRelResponse.getGgxh()); - traceTaskNoticeEntity.setBatchNo(udiEntity.getBatchNo()); - traceTaskNoticeEntity.setProduceDate(udiEntity.getProduceDate()); - traceTaskNoticeEntity.setExpireDate(udiEntity.getExpireDate()); - traceTaskNoticeEntity.setSerialNo(udiEntity.getSerialNo()); + traceTaskNoticeEntity.setCompanyIdFk(companyId); + traceTaskNoticeEntity.setYlqxzcrbarmc(traceProductDetailEntity.getYlqxzcrbarmc()); + traceTaskNoticeEntity.setCreditNum(traceProductDetailEntity.getCreditNum()); + traceTaskNoticeEntity.setCpmctymc(traceProductDetailEntity.getCpmctymc()); + traceTaskNoticeEntity.setGgxh(traceProductDetailEntity.getGgxh()); + traceTaskNoticeEntity.setBatchNo(traceProductDetailEntity.getBatchNo()); + traceTaskNoticeEntity.setProduceDate(traceProductDetailEntity.getProduceDate()); + traceTaskNoticeEntity.setExpireDate(traceProductDetailEntity.getExpireDate()); + traceTaskNoticeEntity.setSerialNo(traceProductDetailEntity.getSerialNo()); traceTaskNoticeEntity.setCreateTime(new Date()); - List diList = basicUdiRelService.getBaseMapper().findDiList(basicUdiRelResponse.getUuid()); - traceTaskNoticeEntity.setDiList(diList); +// List diList = basicUdiRelService.getBaseMapper().findDiList(basicUdiRelResponse.getUuid()); +// traceTaskNoticeEntity.setDiList(diList); traceTaskNoticeService.save(traceTaskNoticeEntity); return traceTaskNoticeEntity; } + public void pushMq(TraceProductDetailEntity traceProductDetailEntity, Long companyId) { + //6.构建MQ推送消息 + MqTraceMessage mqTraceMessage = new MqTraceMessage(); + mqTraceMessage.setCreateTime(new Date()); + mqTraceMessage.setTaskType(1); + mqTraceMessage.setCompanyId(companyId); + mqTraceMessage.setCerditNo(traceProductDetailEntity.getCreditNum()); + mqTraceMessage.setTaskId(traceProductDetailEntity.getId()); + rabbitPushService.send(mqTraceMessage); + + } + + }