单据流转时,发票一起流转问题

master
anthonywj 2 years ago
parent fdb0a735b4
commit 48e22c5daa

@ -9,10 +9,7 @@ import com.glxp.api.constant.ConstantType;
import com.glxp.api.entity.auth.InvWarehouseEntity; import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.entity.basic.BasicBusTypePreEntity; import com.glxp.api.entity.basic.BasicBusTypePreEntity;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.inout.IoCodeEntity; import com.glxp.api.entity.inout.*;
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.inv.InvProductDetailEntity; import com.glxp.api.entity.inv.InvProductDetailEntity;
import com.glxp.api.entity.system.SystemParamConfigEntity; import com.glxp.api.entity.system.SystemParamConfigEntity;
import com.glxp.api.service.auth.InvWarehouseService; import com.glxp.api.service.auth.InvWarehouseService;
@ -61,20 +58,19 @@ public class IoChangeInoutService {
IoCodeTempService codeTempService; IoCodeTempService codeTempService;
@Resource @Resource
IoOrderInvoiceService ioOrderInvoiceService; IoOrderInvoiceService ioOrderInvoiceService;
@Resource
IoOrderDetailBizService orderDetailBizService;
public void changeOrder(IoOrderEntity orderEntity) { public void changeOrder(IoOrderEntity orderEntity) {
BasicBusTypePreEntity basicBusTypePreEntity = basicBusTypePreService.findByOriginAction(orderEntity.getAction()); BasicBusTypePreEntity basicBusTypePreEntity = basicBusTypePreService.findByOriginAction(orderEntity.getAction());
List<IoCodeEntity> codeEnttities = codeService.findByOrderId(orderEntity.getBillNo()); List<IoCodeEntity> codeEnttities = codeService.findByOrderId(orderEntity.getBillNo());
// List<IoOrderInvoiceEntity> invoiceEntities =ioOrderInvoiceService.deleteByInvId()
if (basicBusTypePreEntity != null) { if (basicBusTypePreEntity != null) {
buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity); buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity, true);
} else {
//结束,不生成库存,
} }
//结束,不生成库存,
} }
@ -91,7 +87,7 @@ public class IoChangeInoutService {
List<IoCodeEntity> codeEnttities = codeService.findByOrderId(orderEntity.getBillNo()); List<IoCodeEntity> codeEnttities = codeService.findByOrderId(orderEntity.getBillNo());
if (basicBusTypePreEntity.getSupplementAll()) {//全量补单 if (basicBusTypePreEntity.getSupplementAll()) {//全量补单
invProductDetailService.insertList(invProductDetailEntities); invProductDetailService.insertList(invProductDetailEntities);
buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity); buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity, false);
} else { //缺量补单 } else { //缺量补单
List<IoCodeEntity> inList = new ArrayList<>(); List<IoCodeEntity> inList = new ArrayList<>();
for (IoCodeEntity warehouseEntity : codeEnttities) { for (IoCodeEntity warehouseEntity : codeEnttities) {
@ -113,7 +109,7 @@ public class IoChangeInoutService {
InvProductDetailEntity invProductDetailEntity = filterInvByCode(invProductDetailEntities, warehouseEntity.getCode()); InvProductDetailEntity invProductDetailEntity = filterInvByCode(invProductDetailEntities, warehouseEntity.getCode());
invProductDetailService.insert(invProductDetailEntity); 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<IoCodeEntity> useInList, IoOrderEntity orderEntity) { public void buildInOrder(BasicBusTypePreEntity bussinessChangeTypeEntity, List<IoCodeEntity> useInList, IoOrderEntity orderEntity, boolean isGenInovice) {
if (StrUtil.isEmpty(orderEntity.getRelKey())) { if (StrUtil.isEmpty(orderEntity.getRelKey())) {
@ -236,6 +232,8 @@ public class IoChangeInoutService {
outOrder.setCreateUser(null); outOrder.setCreateUser(null);
outOrder.setReviewUser(null); outOrder.setReviewUser(null);
orderService.insertOrder(outOrder); orderService.insertOrder(outOrder);
//生成条码
List<IoCodeTempEntity> codeTempEntities = new ArrayList<>(); List<IoCodeTempEntity> codeTempEntities = new ArrayList<>();
for (IoCodeEntity warehouseEntity : temps) { for (IoCodeEntity warehouseEntity : temps) {
IoCodeTempEntity codeTempEntity = new IoCodeTempEntity(); IoCodeTempEntity codeTempEntity = new IoCodeTempEntity();
@ -247,6 +245,19 @@ public class IoChangeInoutService {
codeTempEntities.add(codeTempEntity); codeTempEntities.add(codeTempEntity);
} }
codeTempService.insertBatch(codeTempEntities); codeTempService.insertBatch(codeTempEntities);
if (isGenInovice) {
//生成发票信息
List<IoOrderInvoiceEntity> 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:草稿 //根据单据设置状态 1:草稿
if (bussinessChangeTypeEntity.getAuditStatus() == 1) { if (bussinessChangeTypeEntity.getAuditStatus() == 1) {

@ -3,10 +3,12 @@ package com.glxp.api.service.inout;
import com.glxp.api.entity.inout.IoOrderInvoiceEntity; import com.glxp.api.entity.inout.IoOrderInvoiceEntity;
import com.glxp.api.req.inout.IoOrderInvoiceRequest; import com.glxp.api.req.inout.IoOrderInvoiceRequest;
public interface IoOrderInvoiceService { import java.util.List;
public interface IoOrderInvoiceService {
List<IoOrderInvoiceEntity> findByBillNo(String billNo);
boolean deleteByInvId(Integer id); boolean deleteByInvId(Integer id);

@ -1,5 +1,6 @@
package com.glxp.api.service.inout.impl; 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.dao.inout.IoOrderInvoiceMapper;
import com.glxp.api.entity.inout.IoOrderInvoiceEntity; import com.glxp.api.entity.inout.IoOrderInvoiceEntity;
import com.glxp.api.req.inout.IoOrderInvoiceRequest; 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 org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List;
@Service @Service
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@ -17,6 +19,12 @@ public class IoOrderInvoiceServiceImpl implements IoOrderInvoiceService {
@Resource @Resource
IoOrderInvoiceMapper ioOrderInvoiceMapper; IoOrderInvoiceMapper ioOrderInvoiceMapper;
@Override
public List<IoOrderInvoiceEntity> findByBillNo(String orderIdFk) {
return ioOrderInvoiceMapper.selectList(new QueryWrapper<IoOrderInvoiceEntity>().eq("orderIdFk", orderIdFk));
}
@Override @Override
public boolean deleteByInvId(Integer id) { public boolean deleteByInvId(Integer id) {
return this.ioOrderInvoiceMapper.deleteById(id) > 0; return this.ioOrderInvoiceMapper.deleteById(id) > 0;

@ -34,6 +34,12 @@
<if test="orderIdFk != null and orderIdFk != ''"> <if test="orderIdFk != null and orderIdFk != ''">
AND ic.orderIdFk = #{orderIdFk} AND ic.orderIdFk = #{orderIdFk}
</if> </if>
<if test="relId != null">
AND ic.bindRlFk = #{relId}
</if>
<if test="batchNo != null and batchNo != ''">
AND ic.batchNo = #{batchNo}
</if>
<if test="bizIdFk != null and bizIdFk != ''"> <if test="bizIdFk != null and bizIdFk != ''">
AND ic.bizIdFk = #{bizIdFk} AND ic.bizIdFk = #{bizIdFk}
</if> </if>

Loading…
Cancel
Save