diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index 426c8112..20b6aa8e 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -327,6 +327,9 @@ public class IoCodeTempController extends BaseController { return null; } + @Resource + IoCodeLostService codeLostService; + //前端扫码提交 @AuthRuleAnnotation("") @PostMapping("warehouse/inout/addOrderWeb") @@ -386,21 +389,21 @@ public class IoCodeTempController extends BaseController { BaseResponse checkOriginCodeRes = checkOriginCode(udiEntity); if (checkOriginCodeRes != null) { -// IoCodeLostEntity codeLostEntity = codeLostService.findByCode(code); -// if (codeLostEntity == null) { -// if (StrUtil.isNotEmpty(orderId)) { -// List ioCodeEnttities = codeTempService.findByOrderId(orderId); -// IoCodeTempEntity ioCodeEnttity = isExitLocal(code, ioCodeEnttities); -// if (ioCodeEnttity == null) { -// return checkOriginCodeRes; -// } -// } else -// return checkOriginCodeRes; -// } else { -// udiEntity.setBatchNo(codeLostEntity.getBatchNo()); -// udiEntity.setExpireDate(codeLostEntity.getExpireDate()); -// udiEntity.setProduceDate(codeLostEntity.getProduceDate()); -// } + IoCodeLostEntity codeLostEntity = codeLostService.findByCode(code); + if (codeLostEntity == null) { + if (StrUtil.isNotEmpty(orderId)) { + List ioCodeEnttities = codeTempService.findByOrderId(orderId); + IoCodeTempEntity ioCodeEnttity = isExitLocal(code, ioCodeEnttities); + if (ioCodeEnttity == null) { + return checkOriginCodeRes; + } + } else + return checkOriginCodeRes; + } else { + udiEntity.setBatchNo(codeLostEntity.getBatchNo()); + udiEntity.setExpireDate(codeLostEntity.getExpireDate()); + udiEntity.setProduceDate(codeLostEntity.getProduceDate()); + } if (StrUtil.isNotEmpty(orderId)) { List ioCodeEnttities = codeTempService.findByOrderId(orderId); diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java index 6b3afade..d75ca54e 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -28,6 +28,7 @@ import com.glxp.api.service.inout.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; +import org.springframework.scheduling.annotation.Async; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -225,6 +226,9 @@ public class IoOrderController extends BaseController { } + + + @Resource IoCodeService codeService; diff --git a/src/main/java/com/glxp/api/dao/inout/IoCodeLostMapper.java b/src/main/java/com/glxp/api/dao/inout/IoCodeLostMapper.java index f94c51cb..9e2bd7b6 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoCodeLostMapper.java +++ b/src/main/java/com/glxp/api/dao/inout/IoCodeLostMapper.java @@ -1,9 +1,9 @@ package com.glxp.api.dao.inout; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.dao.BaseMapperPlus; import com.glxp.api.entity.inout.IoCodeLostEntity; import org.apache.ibatis.annotations.Mapper; @Mapper -public interface IoCodeLostMapper extends BaseMapper { +public interface IoCodeLostMapper extends BaseMapperPlus { } diff --git a/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java b/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java index 4d75052e..922b793a 100644 --- a/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java +++ b/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java @@ -139,6 +139,16 @@ public class FilterOrderRequest extends ListPageRequest { */ private String statusType; + /** + * 送货管理界面: supDelivery + * 到货单管理界面: supArrival + * 退货单管理界面: supReturned + * 采购入库单界面: supPurchase + * 发票登记界面: supInvoice + */ + private String actionType; + + private Integer orderType; private Integer syncStatus; diff --git a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java index 00e7fead..747dfa96 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java @@ -6,6 +6,7 @@ import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantType; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; +import com.glxp.api.entity.basic.UdiEntity; import com.glxp.api.entity.inout.*; import com.glxp.api.entity.inv.InvPreinDetailEntity; import com.glxp.api.res.inout.IoOrderCheckResultResponse; @@ -16,6 +17,7 @@ import com.glxp.api.service.inv.InvPreinDetailService; import com.glxp.api.service.inv.InvPreinOrderService; import com.glxp.api.util.udi.FilterUdiUtils; import org.springframework.beans.BeanUtils; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -156,6 +158,49 @@ public class IoCheckInoutService { } } + @Resource + IoCodeLostService codeLostService; + + @Async + public void genLostCode(String orderId) { + List ioCodeEntities = codeService.findByOrderId(orderId); + for (IoCodeEntity codeEntity : ioCodeEntities) { + + + UdiEntity udiEntity = FilterUdiUtils.getUdi(codeEntity.getCode()); + + IoCodeLostEntity codeLostEntity = codeLostService.findByCode(codeEntity.getCode()); + if (codeLostEntity == null) + codeLostEntity = new IoCodeLostEntity(); + + //校验是否写入缺失表 + boolean isTrue = false; + if (udiEntity != null) { + if (!StrUtil.trimToEmpty(codeEntity.getBatchNo()).equals(StrUtil.trimToEmpty(udiEntity.getBatchNo()))) { + if (StrUtil.isNotEmpty(codeEntity.getBatchNo())) { + codeLostEntity.setBatchNo(codeEntity.getBatchNo()); + isTrue = true; + } + } + if (!StrUtil.trimToEmpty(codeEntity.getProduceDate()).equals(StrUtil.trimToEmpty(udiEntity.getProduceDate()))) { + if (StrUtil.isNotEmpty(codeEntity.getProduceDate())) { + codeLostEntity.setProduceDate(codeEntity.getProduceDate()); + isTrue = true; + } + } + if (!StrUtil.trimToEmpty(codeEntity.getExpireDate()).equals(StrUtil.trimToEmpty(udiEntity.getExpireDate()))) { + if (StrUtil.isNotEmpty(codeEntity.getExpireDate())) { + codeLostEntity.setExpireDate(codeEntity.getExpireDate()); + isTrue = true; + } + } + if (isTrue) + codeLostService.insertOrUpdate(codeLostEntity); + } + + } + } + public String checkCode(IoCodeTempEntity codeEntity) { boolean isBillExit = orderDetailBizService.isExit(codeEntity.getOrderId()); @@ -229,6 +274,7 @@ public class IoCheckInoutService { orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); orderEntity.setUpdateTime(new Date()); orderService.update(orderEntity); + genLostCode(orderEntity.getBillNo()); checkThird(orderEntity); } @@ -333,7 +379,11 @@ public class IoCheckInoutService { orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); orderEntity.setUpdateTime(new Date()); orderService.update(orderEntity); + //生成缺失码 + genLostCode(orderEntity.getBillNo()); checkThird(orderEntity); + + } } diff --git a/src/main/java/com/glxp/api/service/inout/IoCodeLostService.java b/src/main/java/com/glxp/api/service/inout/IoCodeLostService.java index 66e8d5b5..dd4cc411 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCodeLostService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCodeLostService.java @@ -8,6 +8,7 @@ public interface IoCodeLostService { int insert(IoCodeLostEntity ioCodeLostEntity); + boolean insertOrUpdate(IoCodeLostEntity ioCodeLostEntity); int deleteByCode(String code); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoCodeLostServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoCodeLostServiceImpl.java index ddf611c7..cb07be0f 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoCodeLostServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoCodeLostServiceImpl.java @@ -24,9 +24,15 @@ public class IoCodeLostServiceImpl implements IoCodeLostService { @Override public int insert(IoCodeLostEntity ioCodeLostEntity) { + return codeLostEntityMapper.insert(ioCodeLostEntity); } + @Override + public boolean insertOrUpdate(IoCodeLostEntity ioCodeLostEntity) { + return codeLostEntityMapper.insertOrUpdate(ioCodeLostEntity); + } + @Override public int deleteByCode(String code) { return codeLostEntityMapper.delete(new QueryWrapper().eq("code", code)); diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml index 382f29a9..9d590e3f 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml @@ -123,12 +123,6 @@ AND date_format(createTime, '%Y-%m-%d') between date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') - - AND date_format(createTime, '%Y-%m-%d') >= date_format(#{startTime}, '%Y-%m-%d') - - - AND date_format(createTime, '%Y-%m-%d') <= date_format(#{endTime}, '%Y-%m-%d') - order by createTime desc