|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
package com.glxp.api.controller.trace;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
import cn.hutool.core.util.IdUtil;
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
@ -13,12 +14,15 @@ import com.glxp.api.entity.basic.UdiEntity;
|
|
|
|
|
import com.glxp.api.entity.sup.UserCompanyEntity;
|
|
|
|
|
import com.glxp.api.entity.trace.*;
|
|
|
|
|
import com.glxp.api.req.basic.FilterUdiRelRequest;
|
|
|
|
|
import com.glxp.api.req.trace.TraceManuDetailRequest;
|
|
|
|
|
import com.glxp.api.req.trace.TraceManuOrderUploadRequest;
|
|
|
|
|
import com.glxp.api.req.trace.TraceOrderUploadRequest;
|
|
|
|
|
import com.glxp.api.req.trace.TraceRecordRequest;
|
|
|
|
|
import com.glxp.api.res.basic.BasicUdiRelResponse;
|
|
|
|
|
import com.glxp.api.res.trace.TraceSearchReponse;
|
|
|
|
|
import com.glxp.api.service.basic.BasicUdiRelService;
|
|
|
|
|
import com.glxp.api.service.sup.UserCompanyService;
|
|
|
|
|
import com.glxp.api.service.system.SystemParamConfigService;
|
|
|
|
|
import com.glxp.api.service.trace.*;
|
|
|
|
|
import com.glxp.api.util.GennerOrderUtils;
|
|
|
|
|
import com.glxp.api.util.udi.FilterUdiUtils;
|
|
|
|
@ -53,11 +57,19 @@ public class UdiTraceController extends BaseController {
|
|
|
|
|
@Resource
|
|
|
|
|
TraceOrderService traceOrderService;
|
|
|
|
|
@Resource
|
|
|
|
|
TraceManuOrderService traceManuOrderService;
|
|
|
|
|
@Resource
|
|
|
|
|
TraceManuCodeRelService traceManuCodeRelService;
|
|
|
|
|
@Resource
|
|
|
|
|
TraceRecordService traceRecordService;
|
|
|
|
|
@Resource
|
|
|
|
|
UdiTraceService udiTraceService;
|
|
|
|
|
@Resource
|
|
|
|
|
UserCompanyService userCompanyService;
|
|
|
|
|
@Resource
|
|
|
|
|
SystemParamConfigService systemParamConfigService;
|
|
|
|
|
@Resource
|
|
|
|
|
RabbitPushService rabbitPushService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -163,20 +175,17 @@ public class UdiTraceController extends BaseController {
|
|
|
|
|
public BaseResponse sceneTrace(TraceRecordRequest traceRecordRequest) {
|
|
|
|
|
|
|
|
|
|
TraceSearchReponse traceSearchReponse = new TraceSearchReponse();
|
|
|
|
|
TraceRecordLogEntity traceRecordLogEntity = traceRecordService.getById(traceRecordRequest.getRecordCode());
|
|
|
|
|
if (traceRecordLogEntity != null) {
|
|
|
|
|
List<TraceOrderEntity> traceOrderEntities = traceOrderService.findByProductIdFk(traceRecordLogEntity.getTraceProductIdFk());
|
|
|
|
|
traceSearchReponse.setTraceRecordLogEntity(traceRecordLogEntity);
|
|
|
|
|
traceSearchReponse.setTraceOrderEntities(traceOrderEntities);
|
|
|
|
|
return ResultVOUtils.success(traceSearchReponse);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TraceRecordLogEntity traceRecordLogEntity = null;
|
|
|
|
|
TraceProductDetailEntity traceProductDetailEntity = null;
|
|
|
|
|
BasicUdiRelResponse basicUdiRelResponse = null;
|
|
|
|
|
UdiEntity udiEntity = null;
|
|
|
|
|
UserCompanyEntity userCompanyEntity = null;
|
|
|
|
|
if (traceRecordRequest.getTraceType() == Constant.UDI_TRACE) {
|
|
|
|
|
|
|
|
|
|
if (StrUtil.isNotEmpty(traceRecordRequest.getUdiCode())) {
|
|
|
|
|
traceRecordRequest.setTraceType(Constant.UDI_TRACE);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (traceRecordRequest.getTraceType() == Constant.UDI_TRACE) {
|
|
|
|
|
//1.校验UDI码格式
|
|
|
|
|
udiEntity = FilterUdiUtils.getUdi(traceRecordRequest.getUdiCode());
|
|
|
|
|
if (udiEntity == null) {
|
|
|
|
@ -197,23 +206,14 @@ public class UdiTraceController extends BaseController {
|
|
|
|
|
|
|
|
|
|
//4.生成查询记录
|
|
|
|
|
String userId = getUserId() + "";
|
|
|
|
|
if (traceRecordLogEntity == null)
|
|
|
|
|
traceRecordLogEntity = udiTraceService.createRecordLog(userId, traceRecordRequest.getFromType(), traceRecordRequest.getTraceType());
|
|
|
|
|
traceRecordLogEntity = udiTraceService.createRecordLog(userId, traceRecordRequest.getFromType(), traceRecordRequest.getTraceType());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//5.创建查询详情记录,若存在相同查询记录则直接获取
|
|
|
|
|
if (traceRecordLogEntity.getTraceProductIdFk() != null) {
|
|
|
|
|
traceProductDetailEntity = traceProductDetailService.getById(traceRecordLogEntity.getTraceProductIdFk());
|
|
|
|
|
if (traceProductDetailEntity == null) {
|
|
|
|
|
traceProductDetailEntity = udiTraceService.createTracerProductByUdiCode(traceRecordRequest.getUdiCode(), 2, 1, basicUdiRelResponse, udiEntity);
|
|
|
|
|
traceRecordLogEntity.setTraceProductIdFk(traceProductDetailEntity.getId());
|
|
|
|
|
traceRecordService.updateById(traceRecordLogEntity);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
traceProductDetailEntity = udiTraceService.createTracerProductByUdiCode(traceRecordRequest.getUdiCode(), 2, 1, basicUdiRelResponse, udiEntity);
|
|
|
|
|
}
|
|
|
|
|
traceProductDetailEntity = udiTraceService.createTracerProductByUdiCode(traceRecordRequest.getUdiCode(), 2, 1, basicUdiRelResponse, udiEntity);
|
|
|
|
|
traceRecordLogEntity.setTraceProductIdFk(traceProductDetailEntity.getId());
|
|
|
|
|
traceRecordService.updateById(traceRecordLogEntity);
|
|
|
|
|
udiTraceService.createCheckTraceTask(traceProductDetailEntity, userCompanyEntity.getId());
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
//1:校验参数是否正确
|
|
|
|
|
if (StrUtil.isEmpty(traceRecordRequest.getYlqxzcrbarmc())) {
|
|
|
|
@ -251,8 +251,8 @@ public class UdiTraceController extends BaseController {
|
|
|
|
|
traceProductDetailEntity = udiTraceService.createTracerProductByBatchNo(traceRecordRequest, 2, 2, basicUdiRelResponse);
|
|
|
|
|
udiTraceService.createCheckTraceTask(traceProductDetailEntity, userCompanyEntity.getId());
|
|
|
|
|
}
|
|
|
|
|
traceSearchReponse.setTraceRecordLogEntity(traceRecordLogEntity);
|
|
|
|
|
return ResultVOUtils.success(traceSearchReponse);
|
|
|
|
|
List<TraceOrderEntity> traceOrderEntities = traceOrderService.findByProductIdFk(traceRecordLogEntity.getTraceProductIdFk());
|
|
|
|
|
return ResultVOUtils.success(traceOrderEntities);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -269,11 +269,22 @@ public class UdiTraceController extends BaseController {
|
|
|
|
|
if (bindingResult.hasErrors()) {
|
|
|
|
|
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TraceTaskNoticeEntity taskNoticeEntity = traceTaskNoticeService.getById(traceOrderUploadRequest.getTaskId());
|
|
|
|
|
if (taskNoticeEntity == null) {
|
|
|
|
|
return ResultVOUtils.error(500, "任务已过期,或任务不存在!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TraceOrderEntity traceOrderEntity = new TraceOrderEntity();
|
|
|
|
|
BeanUtils.copyProperties(traceOrderUploadRequest, traceOrderEntity);
|
|
|
|
|
traceOrderEntity.setId(IdUtil.getSnowflakeNextId());
|
|
|
|
|
traceOrderEntity.setUpdateTime(new Date());
|
|
|
|
|
traceOrderService.save(traceOrderEntity);
|
|
|
|
|
|
|
|
|
|
//设置任务已完成
|
|
|
|
|
taskNoticeEntity.setStatus(3);
|
|
|
|
|
traceTaskNoticeService.updateById(taskNoticeEntity);
|
|
|
|
|
udiTraceService.pushDelayRemoveTask(taskNoticeEntity);
|
|
|
|
|
return ResultVOUtils.success("上传成功");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -281,21 +292,42 @@ public class UdiTraceController extends BaseController {
|
|
|
|
|
/**
|
|
|
|
|
* 客户端根据任务上传生产关联关系信息
|
|
|
|
|
*
|
|
|
|
|
* @param traceOrderUploadRequest
|
|
|
|
|
* @param traceManuOrderUploadRequest
|
|
|
|
|
* @param bindingResult
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@AuthRuleAnnotation("udi/trace/manuOrder/upload")
|
|
|
|
|
@PostMapping("udi/trace/manuOrder/upload")
|
|
|
|
|
public BaseResponse uploadManuOrder(@RequestBody TraceOrderUploadRequest traceOrderUploadRequest, BindingResult bindingResult) {
|
|
|
|
|
public BaseResponse uploadManuOrder(@RequestBody TraceManuOrderUploadRequest traceManuOrderUploadRequest, BindingResult bindingResult) {
|
|
|
|
|
if (bindingResult.hasErrors()) {
|
|
|
|
|
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
|
|
|
|
|
}
|
|
|
|
|
TraceOrderEntity traceOrderEntity = new TraceOrderEntity();
|
|
|
|
|
BeanUtils.copyProperties(traceOrderUploadRequest, traceOrderEntity);
|
|
|
|
|
traceOrderEntity.setId(IdUtil.getSnowflakeNextId());
|
|
|
|
|
traceOrderEntity.setUpdateTime(new Date());
|
|
|
|
|
traceOrderService.save(traceOrderEntity);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TraceTaskNoticeEntity taskNoticeEntity = traceTaskNoticeService.getById(traceManuOrderUploadRequest.getTaskId());
|
|
|
|
|
if (taskNoticeEntity == null) {
|
|
|
|
|
return ResultVOUtils.error(500, "任务已过期,或任务不存在!");
|
|
|
|
|
}
|
|
|
|
|
TraceManuOrderEntity traceManuOrderEntity = new TraceManuOrderEntity();
|
|
|
|
|
BeanUtils.copyProperties(traceManuOrderUploadRequest, traceManuOrderEntity);
|
|
|
|
|
traceManuOrderEntity.setId(IdUtil.getSnowflakeNextId());
|
|
|
|
|
traceManuOrderService.save(traceManuOrderEntity);
|
|
|
|
|
List<TraceManuDetailRequest> traceManuDetailRequests = traceManuOrderUploadRequest.getDetails();
|
|
|
|
|
if (CollUtil.isNotEmpty(traceManuDetailRequests)) {
|
|
|
|
|
for (TraceManuDetailRequest traceManuDetailRequest : traceManuDetailRequests) {
|
|
|
|
|
TraceManuCodeRelEntity traceManuCodeRelEntity = new TraceManuCodeRelEntity();
|
|
|
|
|
BeanUtils.copyProperties(traceManuDetailRequest, traceManuCodeRelEntity);
|
|
|
|
|
traceManuCodeRelEntity.setId(IdUtil.getSnowflakeNextId());
|
|
|
|
|
traceManuCodeRelEntity.setManuOrderIdFk(traceManuOrderEntity.getId());
|
|
|
|
|
traceManuOrderService.save(traceManuOrderEntity);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//设置任务已完成
|
|
|
|
|
taskNoticeEntity.setStatus(3);
|
|
|
|
|
traceTaskNoticeService.updateById(taskNoticeEntity);
|
|
|
|
|
udiTraceService.pushDelayRemoveTask(taskNoticeEntity);
|
|
|
|
|
|
|
|
|
|
return ResultVOUtils.success("上传成功");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|