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 7065c3882..daa167974 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -12,10 +12,7 @@ import com.glxp.api.controller.BaseController; import com.glxp.api.entity.auth.InvBusUserEntity; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.basic.EntrustReceEntity; -import com.glxp.api.entity.inout.IoCodeTempEntity; -import com.glxp.api.entity.inout.IoOrderDetailBizEntity; -import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; -import com.glxp.api.entity.inout.IoOrderEntity; +import com.glxp.api.entity.inout.*; import com.glxp.api.req.auth.FilterInvBusUserRequest; import com.glxp.api.req.basic.BasicEntrustRecRequest; import com.glxp.api.req.inout.AddOrderRequest; @@ -220,6 +217,8 @@ public class IoOrderController extends BaseController { return ResultVOUtils.success("提交成功!"); } + @Resource + IoCodeService codeService; //未校验单据删除 @AuthRuleAnnotation("") @@ -229,10 +228,43 @@ public class IoOrderController extends BaseController { orderDetailBizService.deleteByOrderId(deleteRequest.getBillNo()); orderDetailCodeService.deleteByOrderId(deleteRequest.getBillNo()); codeTempService.deleteByBillNo(deleteRequest.getBillNo()); + codeService.deleteCodeByOrderId(deleteRequest.getBillNo()); return ResultVOUtils.success("删除成功!"); + } + + //已验收单据删除、单据编辑删除等 + @AuthRuleAnnotation("") + @PostMapping("udiwms/inout/order/finish/delete") + public BaseResponse deleteById(@RequestBody DeleteRequest deleteRequest) { + List delBillNos = new ArrayList<>(); + if (CollUtil.isNotEmpty(deleteRequest.getBillNos())) { + delBillNos.addAll(deleteRequest.getBillNos()); + } else { + delBillNos.add(deleteRequest.getBillNo()); + } + orderService.deleteInvByBillNo(delBillNos); + for (String billNo : delBillNos) { + orderService.deleteByBillNo(billNo); + orderDetailBizService.deleteByOrderId(billNo); + orderDetailCodeService.deleteByOrderId(billNo); + codeTempService.deleteByBillNo(billNo); + codeService.deleteCodeByOrderId(billNo); + } + return ResultVOUtils.success("删除成功!"); } + + //单据编辑,条码减一 + @AuthRuleAnnotation("") + @PostMapping("udiwms/inout/code/finish/delete") + public BaseResponse deleteCodeById(@RequestBody IoCodeEntity codeEntity) { + + orderService.deleteInvCode(codeEntity.getOrderId(), codeEntity.getCode()); + return ResultVOUtils.success("删除成功!"); + } + + //手持终端获取未处理业务单据进行校验 @AuthRuleAnnotation("") @GetMapping("/udiwms/erpOrder/filter") diff --git a/src/main/java/com/glxp/api/controller/inv/InvPreProductController.java b/src/main/java/com/glxp/api/controller/inv/InvPreProductController.java index e5530b69c..772890980 100644 --- a/src/main/java/com/glxp/api/controller/inv/InvPreProductController.java +++ b/src/main/java/com/glxp/api/controller/inv/InvPreProductController.java @@ -135,7 +135,7 @@ public class InvPreProductController { } else { detailRequest.setBatchNo(invPreProductEntity.getBatchNo()); } - invPreProductService.deleteById(id); + invPreProductService.deleteById(Integer.parseInt(id)); invPreProductDetailService.deleteInvPreProductDetail(detailRequest); return ResultVOUtils.success("删除成功"); } else { diff --git a/src/main/java/com/glxp/api/entity/inv/InvPreProductDetailEntity.java b/src/main/java/com/glxp/api/entity/inv/InvPreProductDetailEntity.java index 470a5b691..e638c5f04 100644 --- a/src/main/java/com/glxp/api/entity/inv/InvPreProductDetailEntity.java +++ b/src/main/java/com/glxp/api/entity/inv/InvPreProductDetailEntity.java @@ -9,8 +9,8 @@ import lombok.Data; import java.util.Date; /** - * 寄售库存详情表 - */ + * 寄售库存详情表 + */ @Data @TableName(value = "inv_pre_product_detail") public class InvPreProductDetailEntity { @@ -45,7 +45,7 @@ public class InvPreProductDetailEntity { * 耗材字典ID */ @TableField(value = "relId") - private Integer relId; + private Long relId; /** * 最小销售标识 diff --git a/src/main/java/com/glxp/api/req/system/DeleteRequest.java b/src/main/java/com/glxp/api/req/system/DeleteRequest.java index 0076f6a61..005102efb 100644 --- a/src/main/java/com/glxp/api/req/system/DeleteRequest.java +++ b/src/main/java/com/glxp/api/req/system/DeleteRequest.java @@ -10,4 +10,5 @@ public class DeleteRequest { String id; List ids; String billNo; + List billNos; } diff --git a/src/main/java/com/glxp/api/service/inout/IoCodeService.java b/src/main/java/com/glxp/api/service/inout/IoCodeService.java index 4ad1e0772..326b2dfdd 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCodeService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCodeService.java @@ -17,6 +17,8 @@ public interface IoCodeService { int updateById(IoCodeEntity codeEnttity); + int deleteById(Integer id); + public IoCodeEntity findByUnique(String orderId, String code); /** diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderDetailResultService.java b/src/main/java/com/glxp/api/service/inout/IoOrderDetailResultService.java index 6daf55720..5c7a3b25f 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderDetailResultService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderDetailResultService.java @@ -1,5 +1,6 @@ package com.glxp.api.service.inout; +import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.entity.inout.IoOrderDetailResultEntity; import com.glxp.api.req.inout.FilterOrderDetailResultRequest; import com.glxp.api.res.inout.IoOrderDetailResultResponse; @@ -10,6 +11,9 @@ public interface IoOrderDetailResultService { List findByOrderId(String orderId); + + IoOrderDetailResultEntity findByUnique(String orderId, Long relId, String bacthNo); + int insert(IoOrderDetailResultEntity orderDetailResultEntity); int deleteByOrderId(String billNo); diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderService.java b/src/main/java/com/glxp/api/service/inout/IoOrderService.java index 55d6dda92..ab081935b 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderService.java @@ -33,6 +33,11 @@ public interface IoOrderService { int deleteByBillNo(String billNo); + int deleteInvByBillNo(List billNo); + + int deleteInvCode(String billNo, String code); + + /** * 查询单据列表 * diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoCodeServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoCodeServiceImpl.java index 93e27dabe..1eedd9b81 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoCodeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoCodeServiceImpl.java @@ -54,6 +54,11 @@ public class IoCodeServiceImpl implements IoCodeService { return ioCodeDao.updateById(codeEnttity); } + @Override + public int deleteById(Integer id) { + return ioCodeDao.deleteById(id); + } + @Override public IoCodeEntity findByUnique(String orderId, String code) { return ioCodeDao.selectOne(new QueryWrapper().eq("orderId", orderId).eq("code", code)); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailResultServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailResultServiceImpl.java index 04b20e76e..bace91f98 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailResultServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailResultServiceImpl.java @@ -1,8 +1,10 @@ package com.glxp.api.service.inout.impl; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.glxp.api.dao.inout.IoOrderDetailResultDao; +import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.entity.inout.IoOrderDetailResultEntity; import com.glxp.api.req.inout.FilterOrderDetailResultRequest; import com.glxp.api.res.inout.IoOrderDetailResultResponse; @@ -24,6 +26,12 @@ public class IoOrderDetailResultServiceImpl implements IoOrderDetailResultServic return orderDetailResultDao.selectList(new QueryWrapper().eq("orderIdFk", orderId)); } + @Override + public IoOrderDetailResultEntity findByUnique(String orderId, Long relId, String bacthNo) { + return orderDetailResultDao.selectOne(new QueryWrapper().eq("orderIdFk", orderId).eq("bindRlFk", relId).eq(StrUtil.isNotEmpty(bacthNo), "batchNo", bacthNo) + .isNull(StrUtil.isEmpty(bacthNo), "batchNo")); + } + @Override public int insert(IoOrderDetailResultEntity orderDetailResultEntity) { orderDetailResultEntity.setId(null); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java index acaffc2f3..52cf1d164 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.glxp.api.constant.Constant; import com.glxp.api.constant.ConstantStatus; +import com.glxp.api.constant.ConstantType; import com.glxp.api.dao.auth.DeptDao; import com.glxp.api.dao.auth.InvSubWarehouseDao; import com.glxp.api.dao.basic.BasicBussinessTypeDao; @@ -16,19 +17,27 @@ import com.glxp.api.dao.basic.BasicCorpDao; import com.glxp.api.dao.inout.IoOrderDao; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.basic.BasicCorpEntity; -import com.glxp.api.entity.inout.IoOrderEntity; +import com.glxp.api.entity.inout.*; +import com.glxp.api.entity.inv.*; import com.glxp.api.req.inout.FilterOrderRequest; import com.glxp.api.req.inout.OrderEditRequest; +import com.glxp.api.req.inv.FilterInvProductDetailRequest; +import com.glxp.api.req.inv.FilterInvProductRequest; import com.glxp.api.res.inout.IoOrderResponse; import com.glxp.api.res.inout.OrderNoResult; -import com.glxp.api.service.inout.IoOrderService; +import com.glxp.api.service.basic.IBasicBussinessTypeService; +import com.glxp.api.service.inout.*; +import com.glxp.api.service.inv.*; import com.glxp.api.util.DateUtil; +import com.glxp.api.util.udi.UdiCalCountUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.lang.reflect.Field; import java.util.*; +import java.util.stream.Collectors; @Slf4j @Service @@ -44,6 +53,26 @@ public class IoOrderServiceImpl implements IoOrderService { private DeptDao deptDao; @Resource private InvSubWarehouseDao invSubWarehouseDao; + @Resource + IBasicBussinessTypeService basicBussinessTypeService; + @Resource + InvPreinOrderService preinOrderService; + @Resource + InvPreinDetailService preinDetailService; + @Resource + InvProductDetailService invProductDetailService; + @Resource + InvProductService invProductService; + @Resource + InvPreProductService invPreProductService; + @Resource + InvPreProductDetailService invPreProductDetailService; + @Resource + UdiCalCountUtil udiCalCountUtil; + @Resource + IoCodeService codeService; + @Resource + IoCodeTempService codeTempService; @Override public List selectAll() { @@ -121,6 +150,193 @@ public class IoOrderServiceImpl implements IoOrderService { return orderDao.delete(new QueryWrapper().eq("billNo", billNo)); } + + //已验收单据删除、单据编辑删除等(删除对应的库存信息) + @Override + public int deleteInvByBillNo(List billNos) { + + for (String billNo : billNos) { + IoOrderEntity orderEntity = findByBillNo(billNo); + if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_AUDITED) { + BasicBussinessTypeEntity basicBussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); + //判断单据是否是预验收单据,如果是预验收单据,则删除预验收库库存 + if (basicBussinessTypeEntity.isPreIn()) { + preinOrderService.deleteByOrderId(billNo); + preinDetailService.deleteByOrderId(billNo); + } else if (basicBussinessTypeEntity.isAdvanceType()) { + //是否寄售,删除寄售库存 + List invProductDetailEntities = invPreProductDetailService.selectByOrderIdFk(billNo); + for (InvPreProductDetailEntity invProductDetailEntity : invProductDetailEntities) { + //更新库存 + InvPreProductEntity invProductEntity = invPreProductService.selectByUnique(invProductDetailEntity.getRelId(), invProductDetailEntity.getBatchNo(), invProductDetailEntity.getSupId(), invProductDetailEntity.getDeptCode(), invProductDetailEntity.getInvCode()); + if (invProductEntity != null) { + if (ConstantType.TYPE_PUT.equals(invProductDetailEntity.getMainAction())) { + int count = invProductEntity.getInCount() - invProductDetailEntity.getReCount(); + invProductEntity.setInCount(count); + } else if (ConstantType.TYPE_OUT.equals(invProductDetailEntity.getMainAction())) { + int count = invProductEntity.getOutCount() - invProductDetailEntity.getReCount(); + invProductEntity.setOutCount(count); + } + } + invPreProductService.update(invProductEntity); + } + //删除库存详情 + invPreProductDetailService.deleteByOrderId(billNo); + + + } else { + //删除普通库存 + List invProductDetailEntities = invProductDetailService.selectByOrderIdFk(billNo); + for (InvProductDetailEntity invProductDetailEntity : invProductDetailEntities) { + //更新库存 + InvProductEntity invProductEntity = invProductService.selectByUnique(invProductDetailEntity.getRelId(), invProductDetailEntity.getBatchNo(), invProductDetailEntity.getSupId(), invProductDetailEntity.getDeptCode(), invProductDetailEntity.getInvCode()); + if (invProductEntity != null) { + if (ConstantType.TYPE_PUT.equals(invProductDetailEntity.getMainAction())) { + int count = invProductEntity.getInCount() - invProductDetailEntity.getReCount(); + invProductEntity.setInCount(count); + } else if (ConstantType.TYPE_OUT.equals(invProductDetailEntity.getMainAction())) { + int count = invProductEntity.getOutCount() - invProductDetailEntity.getReCount(); + invProductEntity.setOutCount(count); + } + } + invProductService.update(invProductEntity); + } + //删除库存详情 + invProductDetailService.deleteByOrderId(billNo); + } + } + } + + return 0; + } + + + @Resource + IoOrderDetailCodeService ioOrderDetailCodeService; + @Resource + IoOrderDetailResultService ioOrderDetailResultService; + + //单据编辑条码减一 + @Override + public int deleteInvCode(String billNo, String code) { + + //查询条码 + IoOrderEntity orderEntity = findByBillNo(billNo); + if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_AUDITED + || orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_CHECK_SUCCESS) { + //更新正式表 + IoCodeEntity ioCodeEntity = codeService.findByUnique(billNo, code); + if (ioCodeEntity.getCount() > 1) { + //更新码表 + ioCodeEntity.setCount(ioCodeEntity.getCount() - 1); + int reCount = udiCalCountUtil.getActCount(ioCodeEntity.getRelId()); + ioCodeEntity.setReCount(ioCodeEntity.getReCount() - reCount); + codeService.updateById(ioCodeEntity); //更新码详情 + + //更新扫码单据详情 + IoOrderDetailCodeEntity ioOrderDetailCodeEntity = ioOrderDetailCodeService.findByUnique(ioCodeEntity.getOrderId(), ioCodeEntity.getRelId(), ioCodeEntity.getBatchNo()); + ioOrderDetailCodeEntity.setReCount(ioOrderDetailCodeEntity.getReCount() - reCount); + ioOrderDetailCodeService.update(ioOrderDetailCodeEntity); + + //更新结果详情 + IoOrderDetailResultEntity ioOrderDetailResultEntity = ioOrderDetailResultService.findByUnique(ioCodeEntity.getOrderId(), ioCodeEntity.getRelId(), ioCodeEntity.getBatchNo()); + ioOrderDetailResultEntity.setReCount(ioOrderDetailResultEntity.getReCount() - reCount); + ioOrderDetailResultService.update(ioOrderDetailResultEntity); + } else { + //如果数量扣减之后为0,直接删除此条码 + codeService.deleteById(ioCodeEntity.getId()); + } + //已审核单据需扣减库存 + if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_AUDITED) { + + BasicBussinessTypeEntity basicBussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); + + //预验收库存 + if (basicBussinessTypeEntity.isPreIn()) { + + InvPreinDetailEntity invPreinDetailEntity = preinDetailService.findByCode(billNo, code); + int count = invPreinDetailEntity.getCount() - 1; + if (count == 0) { + preinDetailService.deleteById(invPreinDetailEntity.getId()); + } else { + invPreinDetailEntity.setCount(count); + int reCount = udiCalCountUtil.getActCount(invPreinDetailEntity.getRelId()); + invPreinDetailEntity.setReCount(invPreinDetailEntity.getReCount() - reCount); + preinDetailService.update(invPreinDetailEntity); + } + + } else if (basicBussinessTypeEntity.isAdvanceType()) { //寄售库存 + InvPreProductDetailEntity invProductDetailEntity = invPreProductDetailService.selectByCode(billNo, code); + int count = invProductDetailEntity.getCount() - 1; + if (count == 0) { + invPreProductService.deleteById(invProductDetailEntity.getId()); + } else { + //更新详情表 + invProductDetailEntity.setCount(count); + int reCount = udiCalCountUtil.getActCount(invProductDetailEntity.getRelId()); + invProductDetailEntity.setReCount(invProductDetailEntity.getReCount() - reCount); + invPreProductDetailService.update(invProductDetailEntity); + } + //更新产品表 + InvPreProductEntity invProductEntity = invPreProductService.selectByUnique(invProductDetailEntity.getRelId(), invProductDetailEntity.getBatchNo(), invProductDetailEntity.getSupId(), invProductDetailEntity.getDeptCode(), invProductDetailEntity.getInvCode()); + if (invProductEntity != null) { + if (ConstantType.TYPE_PUT.equals(invProductDetailEntity.getMainAction())) { + int inCount = invProductEntity.getInCount() - invProductDetailEntity.getReCount(); + invProductEntity.setInCount(inCount); + } else if (ConstantType.TYPE_OUT.equals(invProductDetailEntity.getMainAction())) { + int outCount = invProductEntity.getOutCount() - invProductDetailEntity.getReCount(); + invProductEntity.setOutCount(outCount); + } + invProductEntity.setReCount(invProductEntity.getInCount() - invProductEntity.getOutCount()); + } + invPreProductService.update(invProductEntity); + } else { //普通库存 + InvProductDetailEntity invProductDetailEntity = invProductDetailService.selectByCode(billNo, code); + int count = invProductDetailEntity.getCount() - 1; + if (count == 0) { + invProductDetailService.deleteById(invProductDetailEntity.getId()); + } else { + //更新详情表 + invProductDetailEntity.setCount(count); + int reCount = udiCalCountUtil.getActCount(invProductDetailEntity.getRelId()); + invProductDetailEntity.setReCount(invProductDetailEntity.getReCount() - reCount); + invProductDetailService.update(invProductDetailEntity); + } + //更新产品表 + InvProductEntity invProductEntity = invProductService.selectByUnique(invProductDetailEntity.getRelId(), invProductDetailEntity.getBatchNo(), invProductDetailEntity.getSupId(), invProductDetailEntity.getDeptCode(), invProductDetailEntity.getInvCode()); + if (invProductEntity != null) { + if (ConstantType.TYPE_PUT.equals(invProductDetailEntity.getMainAction())) { + int inCount = invProductEntity.getInCount() - invProductDetailEntity.getReCount(); + invProductEntity.setInCount(inCount); + } else if (ConstantType.TYPE_OUT.equals(invProductDetailEntity.getMainAction())) { + int outCount = invProductEntity.getOutCount() - invProductDetailEntity.getReCount(); + invProductEntity.setOutCount(outCount); + } + invProductEntity.setReCount(invProductEntity.getInCount() - invProductEntity.getOutCount()); + } + invProductService.update(invProductEntity); + } + + + } + + } else { + //更新临时表 + IoCodeTempEntity ioCodeEntity = codeTempService.findByUnique(billNo, code); + if (ioCodeEntity.getCount() > 1) { + //删除一个条码 + ioCodeEntity.setCount(ioCodeEntity.getCount() - 1); + int reCount = udiCalCountUtil.getActCount(ioCodeEntity.getRelId()); + ioCodeEntity.setReCount(ioCodeEntity.getReCount() - reCount); + codeTempService.updateById(ioCodeEntity); //更新码详情 + } else { + //如果数量扣减之后为0,直接删除此条码 + codeService.deleteById(ioCodeEntity.getId()); + } + } + return 0; + } + @Override public List filterList(FilterOrderRequest filterOrderRequest) { if (null == filterOrderRequest) { diff --git a/src/main/java/com/glxp/api/service/inv/InvPreProductDetailService.java b/src/main/java/com/glxp/api/service/inv/InvPreProductDetailService.java index de9aa4aa6..ea0968a7b 100644 --- a/src/main/java/com/glxp/api/service/inv/InvPreProductDetailService.java +++ b/src/main/java/com/glxp/api/service/inv/InvPreProductDetailService.java @@ -1,6 +1,7 @@ package com.glxp.api.service.inv; import com.glxp.api.entity.inv.InvPreProductDetailEntity; +import com.glxp.api.entity.inv.InvProductDetailEntity; import com.glxp.api.req.inv.FilterInvPreProductDetailRequest; import com.glxp.api.req.inv.FilterInvProductDetailRequest; import com.glxp.api.res.inv.InvPreProductDetailResponse; @@ -14,10 +15,16 @@ public interface InvPreProductDetailService { int insert(InvPreProductDetailEntity invPreProductDetailEntity); + List selectByOrderIdFk(String billNo); + + InvPreProductDetailEntity selectByCode(String billNo, String code); + boolean update(InvPreProductDetailEntity invPreProductDetailEntity); boolean deleteById(String id); + int deleteByOrderId(String billNo); + /** * 查询寄售库存详情列表 * diff --git a/src/main/java/com/glxp/api/service/inv/InvPreProductService.java b/src/main/java/com/glxp/api/service/inv/InvPreProductService.java index f46ef5c88..b933fbe71 100644 --- a/src/main/java/com/glxp/api/service/inv/InvPreProductService.java +++ b/src/main/java/com/glxp/api/service/inv/InvPreProductService.java @@ -1,6 +1,8 @@ package com.glxp.api.service.inv; import com.glxp.api.entity.inv.InvPreProductEntity; +import com.glxp.api.entity.inv.InvProductDetailEntity; +import com.glxp.api.entity.inv.InvProductEntity; import com.glxp.api.req.inv.FilterInvPreProductRequest; import com.glxp.api.res.inv.InvPreProductResponse; @@ -13,9 +15,12 @@ public interface InvPreProductService { int insert(InvPreProductEntity invPreProductEntity); + boolean update(InvPreProductEntity invPreProductEntity); - boolean deleteById(String id); + InvPreProductEntity selectByUnique(Long relId, String batchNo, String supId, String deptCode, String invCode); + + boolean deleteById(Integer id); /** * 查询寄售库存VO diff --git a/src/main/java/com/glxp/api/service/inv/InvPreinDetailService.java b/src/main/java/com/glxp/api/service/inv/InvPreinDetailService.java index dd0c9d369..b49123e5f 100644 --- a/src/main/java/com/glxp/api/service/inv/InvPreinDetailService.java +++ b/src/main/java/com/glxp/api/service/inv/InvPreinDetailService.java @@ -21,6 +21,7 @@ public interface InvPreinDetailService { int deleteByOrderId(String orderId); + int deleteById(Integer id); InvPreinDetailEntity findByCode(String orderId, String code); diff --git a/src/main/java/com/glxp/api/service/inv/InvProductDetailService.java b/src/main/java/com/glxp/api/service/inv/InvProductDetailService.java index 0d47f54e8..ef8d137a4 100644 --- a/src/main/java/com/glxp/api/service/inv/InvProductDetailService.java +++ b/src/main/java/com/glxp/api/service/inv/InvProductDetailService.java @@ -1,5 +1,6 @@ package com.glxp.api.service.inv; +import com.glxp.api.entity.inv.InvPreinDetailEntity; import com.glxp.api.entity.inv.InvProductDetailEntity; import com.glxp.api.req.inv.FilterInvProductDetailRequest; import com.glxp.api.res.inv.InvProductDetailResponse; @@ -10,6 +11,18 @@ public interface InvProductDetailService { int insert(InvProductDetailEntity invProductDetailEntity); + + List selectByOrderIdFk(String billNo); + + + InvProductDetailEntity selectByCode(String billNo, String code); + + int deleteByOrderId(String billNo); + + int deleteById(Integer id); + + int update(InvProductDetailEntity invProductDetailEntity); + List selectByUnique(Long relId, String batchNo, String supId, String deptCode, String invCode); InvProductDetailEntity sortFindByCode(String code); diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvPreProductDetailServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvPreProductDetailServiceImpl.java index c6d42857f..c661091a8 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvPreProductDetailServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvPreProductDetailServiceImpl.java @@ -1,5 +1,7 @@ package com.glxp.api.service.inv.impl; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.glxp.api.constant.ConstantType; @@ -9,6 +11,7 @@ import com.glxp.api.dao.inv.InvPreProductDetailDao; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.inout.IoOrderEntity; import com.glxp.api.entity.inv.InvPreProductDetailEntity; +import com.glxp.api.entity.inv.InvProductDetailEntity; import com.glxp.api.req.inv.FilterInvPreProductDetailRequest; import com.glxp.api.req.inv.FilterInvProductDetailRequest; import com.glxp.api.req.system.DeleteRequest; @@ -40,6 +43,24 @@ public class InvPreProductDetailServiceImpl implements InvPreProductDetailServic return invPreProductDetailDao.insert(invPreProductDetailEntity); } + @Override + public List selectByOrderIdFk(String billNo) { + if (StrUtil.isEmpty(billNo)) + return null; + List invProductDetailEntities = invPreProductDetailDao.selectList(new QueryWrapper().eq("orderId", billNo)); + return invProductDetailEntities; + } + + @Override + public InvPreProductDetailEntity selectByCode(String billNo, String code) { + List invProductDetailEntities = invPreProductDetailDao.selectList + (new QueryWrapper().eq("code", code).eq("orderId", billNo)); + if (CollUtil.isNotEmpty(invProductDetailEntities)) + return invProductDetailEntities.get(0); + else + return null; + } + @Override public boolean update(InvPreProductDetailEntity invPreProductDetailEntity) { return invPreProductDetailDao.updateById(invPreProductDetailEntity) == 1 ? true : false; @@ -50,6 +71,11 @@ public class InvPreProductDetailServiceImpl implements InvPreProductDetailServic return invPreProductDetailDao.deleteById(id) == 1 ? true : false; } + @Override + public int deleteByOrderId(String billNo) { + return invPreProductDetailDao.delete(new QueryWrapper().eq("orderId", billNo)); + } + @Override public List filterPreProductDetailList(FilterInvPreProductDetailRequest invPreProductDetailRequest) { if (null == invPreProductDetailRequest) { diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvPreProductServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvPreProductServiceImpl.java index 573d936b5..b66a33bf1 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvPreProductServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvPreProductServiceImpl.java @@ -1,8 +1,11 @@ package com.glxp.api.service.inv.impl; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.glxp.api.dao.inv.InvPreProductDao; import com.glxp.api.entity.inv.InvPreProductEntity; +import com.glxp.api.entity.inv.InvProductEntity; import com.glxp.api.req.inv.FilterInvPreProductRequest; import com.glxp.api.res.inv.InvPreProductResponse; import com.glxp.api.service.inv.InvPreProductService; @@ -33,7 +36,14 @@ public class InvPreProductServiceImpl implements InvPreProductService { } @Override - public boolean deleteById(String id) { + public InvPreProductEntity selectByUnique(Long relId, String batchNo, String supId, String deptCode, String invCode) { + return invPreProductDao.selectOne(new QueryWrapper().eq("relIdFk", relId).eq(StrUtil.isNotEmpty(batchNo), "batchNo", batchNo) + .isNull(StrUtil.isEmpty(batchNo), "batchNo").eq("supId", supId).eq("deptCode", deptCode).eq("invCode", invCode)); + + } + + @Override + public boolean deleteById(Integer id) { return invPreProductDao.deleteById(id) == 1 ? true : false; } diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvPreinDetailServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvPreinDetailServiceImpl.java index f4bd6e8d8..5e6770a2b 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvPreinDetailServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvPreinDetailServiceImpl.java @@ -59,6 +59,11 @@ public class InvPreinDetailServiceImpl implements InvPreinDetailService { return invPreinDetailDao.delete(new QueryWrapper().eq("orderId", orderId)); } + @Override + public int deleteById(Integer id) { + return invPreinDetailDao.deleteById(id); + } + @Override public InvPreinDetailEntity findByCode(String orderId, String code) { List invPreinDetailEntities = invPreinDetailDao.selectList(new QueryWrapper().eq("orderId", orderId).eq("code", code).last("limit 1")); diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvProductDetailServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvProductDetailServiceImpl.java index eb735c5e1..40949ba1e 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvProductDetailServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvProductDetailServiceImpl.java @@ -42,6 +42,39 @@ public class InvProductDetailServiceImpl implements InvProductDetailService { return invProductDetailDao.insert(invProductDetailEntity); } + @Override + public List selectByOrderIdFk(String billNo) { + if (StrUtil.isEmpty(billNo)) + return null; + List invProductDetailEntities = invProductDetailDao.selectList(new QueryWrapper().eq("orderId", billNo)); + return invProductDetailEntities; + } + + @Override + public InvProductDetailEntity selectByCode(String billNo, String code) { + List invProductDetailEntities = invProductDetailDao.selectList + (new QueryWrapper().eq("code", code).eq("orderId", billNo)); + if (CollUtil.isNotEmpty(invProductDetailEntities)) + return invProductDetailEntities.get(0); + else + return null; + } + + @Override + public int deleteByOrderId(String billNo) { + return invProductDetailDao.delete(new QueryWrapper().eq("orderId", billNo)); + } + + @Override + public int deleteById(Integer id) { + return invProductDetailDao.deleteById(id); + } + + @Override + public int update(InvProductDetailEntity invProductDetailEntity) { + return invProductDetailDao.updateById(invProductDetailEntity); + } + @Override public List selectByUnique(Long relId, String batchNo, String supId, String deptCode, String invCode) { return invProductDetailDao.selectList(new QueryWrapper().eq("relId", relId).eq(StrUtil.isNotEmpty(batchNo), "batchNo", batchNo) diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvProductServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvProductServiceImpl.java index ee1d2632e..3f304e95c 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvProductServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvProductServiceImpl.java @@ -93,7 +93,7 @@ public class InvProductServiceImpl implements InvProductService { return Collections.emptyList(); } if (null != filterInvProductRequest.getPage() && null != filterInvProductRequest.getLimit()) { - PageHelper.offsetPage((filterInvProductRequest.getPage() -1 ) * filterInvProductRequest.getLimit(), filterInvProductRequest.getLimit()); + PageHelper.offsetPage((filterInvProductRequest.getPage() - 1) * filterInvProductRequest.getLimit(), filterInvProductRequest.getLimit()); } return invProductDao.getCountInvProduct(filterInvProductRequest); }