diff --git a/src/main/java/com/glxp/api/service/inout/IoChangeInoutService.java b/src/main/java/com/glxp/api/service/inout/IoChangeInoutService.java index 9f2aec18..e64170fb 100644 --- a/src/main/java/com/glxp/api/service/inout/IoChangeInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoChangeInoutService.java @@ -9,10 +9,7 @@ import com.glxp.api.constant.ConstantType; import com.glxp.api.entity.auth.InvWarehouseEntity; import com.glxp.api.entity.basic.BasicBusTypePreEntity; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; -import com.glxp.api.entity.inout.IoCodeEntity; -import com.glxp.api.entity.inout.IoCodeTempEntity; -import com.glxp.api.entity.inout.IoOrderEntity; -import com.glxp.api.entity.inout.IoOrderInvoiceEntity; +import com.glxp.api.entity.inout.*; import com.glxp.api.entity.inv.InvProductDetailEntity; import com.glxp.api.entity.system.SystemParamConfigEntity; import com.glxp.api.service.auth.InvWarehouseService; @@ -61,20 +58,19 @@ public class IoChangeInoutService { IoCodeTempService codeTempService; @Resource IoOrderInvoiceService ioOrderInvoiceService; + @Resource + IoOrderDetailBizService orderDetailBizService; public void changeOrder(IoOrderEntity orderEntity) { BasicBusTypePreEntity basicBusTypePreEntity = basicBusTypePreService.findByOriginAction(orderEntity.getAction()); List codeEnttities = codeService.findByOrderId(orderEntity.getBillNo()); -// List invoiceEntities =ioOrderInvoiceService.deleteByInvId() + if (basicBusTypePreEntity != null) { - buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity); - } else { - //结束,不生成库存, + buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity, true); } - - + //结束,不生成库存, } @@ -91,7 +87,7 @@ public class IoChangeInoutService { List codeEnttities = codeService.findByOrderId(orderEntity.getBillNo()); if (basicBusTypePreEntity.getSupplementAll()) {//全量补单 invProductDetailService.insertList(invProductDetailEntities); - buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity); + buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity, false); } else { //缺量补单 List inList = new ArrayList<>(); for (IoCodeEntity warehouseEntity : codeEnttities) { @@ -113,7 +109,7 @@ public class IoChangeInoutService { InvProductDetailEntity invProductDetailEntity = filterInvByCode(invProductDetailEntities, warehouseEntity.getCode()); invProductDetailService.insert(invProductDetailEntity); } - buildInOrder(basicBusTypePreEntity, inList, orderEntity); + buildInOrder(basicBusTypePreEntity, inList, orderEntity, false); } } @@ -145,7 +141,7 @@ public class IoChangeInoutService { } //生成单据 - public void buildInOrder(BasicBusTypePreEntity bussinessChangeTypeEntity, List useInList, IoOrderEntity orderEntity) { + public void buildInOrder(BasicBusTypePreEntity bussinessChangeTypeEntity, List useInList, IoOrderEntity orderEntity, boolean isGenInovice) { if (StrUtil.isEmpty(orderEntity.getRelKey())) { @@ -236,6 +232,8 @@ public class IoChangeInoutService { outOrder.setCreateUser(null); outOrder.setReviewUser(null); orderService.insertOrder(outOrder); + + //生成条码 List codeTempEntities = new ArrayList<>(); for (IoCodeEntity warehouseEntity : temps) { IoCodeTempEntity codeTempEntity = new IoCodeTempEntity(); @@ -247,6 +245,19 @@ public class IoChangeInoutService { codeTempEntities.add(codeTempEntity); } codeTempService.insertBatch(codeTempEntities); + if (isGenInovice) { + //生成发票信息 + List invoiceEntities = ioOrderInvoiceService.findByBillNo(orderEntity.getBillNo()); + if (CollUtil.isNotEmpty(invoiceEntities)) { + for (IoOrderInvoiceEntity orderInvoiceEntity : invoiceEntities) { + orderInvoiceEntity.setOrderIdFk(outOrder.getBillNo()); + orderInvoiceEntity.setId(null); + orderInvoiceEntity.setBizIdFk(null); + orderInvoiceEntity.setUpdateTime(new Date()); + ioOrderInvoiceService.insertInvoice(orderInvoiceEntity); + } + } + } //根据单据设置状态 1:草稿 if (bussinessChangeTypeEntity.getAuditStatus() == 1) { diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderInvoiceService.java b/src/main/java/com/glxp/api/service/inout/IoOrderInvoiceService.java index ed27263f..c2a59306 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderInvoiceService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderInvoiceService.java @@ -3,10 +3,12 @@ package com.glxp.api.service.inout; import com.glxp.api.entity.inout.IoOrderInvoiceEntity; import com.glxp.api.req.inout.IoOrderInvoiceRequest; -public interface IoOrderInvoiceService { +import java.util.List; +public interface IoOrderInvoiceService { + List findByBillNo(String billNo); boolean deleteByInvId(Integer id); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceServiceImpl.java index ce3b273e..e6c9f016 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceServiceImpl.java @@ -1,5 +1,6 @@ package com.glxp.api.service.inout.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.glxp.api.dao.inout.IoOrderInvoiceMapper; import com.glxp.api.entity.inout.IoOrderInvoiceEntity; import com.glxp.api.req.inout.IoOrderInvoiceRequest; @@ -10,6 +11,7 @@ import com.glxp.api.service.inout.IoOrderInvoiceService; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.List; @Service @Transactional(rollbackFor = Exception.class) @@ -17,6 +19,12 @@ public class IoOrderInvoiceServiceImpl implements IoOrderInvoiceService { @Resource IoOrderInvoiceMapper ioOrderInvoiceMapper; + @Override + public List findByBillNo(String orderIdFk) { + return ioOrderInvoiceMapper.selectList(new QueryWrapper().eq("orderIdFk", orderIdFk)); + } + + @Override public boolean deleteByInvId(Integer id) { return this.ioOrderInvoiceMapper.deleteById(id) > 0; diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDetailBizDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDetailBizDao.xml index 8d91788f..b4f20099 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDetailBizDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDetailBizDao.xml @@ -34,6 +34,12 @@ AND ic.orderIdFk = #{orderIdFk} + + AND ic.bindRlFk = #{relId} + + + AND ic.batchNo = #{batchNo} + AND ic.bizIdFk = #{bizIdFk}