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

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.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<IoCodeEntity> codeEnttities = codeService.findByOrderId(orderEntity.getBillNo());
// List<IoOrderInvoiceEntity> invoiceEntities =ioOrderInvoiceService.deleteByInvId()
if (basicBusTypePreEntity != null) {
buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity);
} else {
//结束,不生成库存,
buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity, true);
}
//结束,不生成库存,
}
@ -91,7 +87,7 @@ public class IoChangeInoutService {
List<IoCodeEntity> codeEnttities = codeService.findByOrderId(orderEntity.getBillNo());
if (basicBusTypePreEntity.getSupplementAll()) {//全量补单
invProductDetailService.insertList(invProductDetailEntities);
buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity);
buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity, false);
} else { //缺量补单
List<IoCodeEntity> 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<IoCodeEntity> useInList, IoOrderEntity orderEntity) {
public void buildInOrder(BasicBusTypePreEntity bussinessChangeTypeEntity, List<IoCodeEntity> 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<IoCodeTempEntity> 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<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:草稿
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.req.inout.IoOrderInvoiceRequest;
public interface IoOrderInvoiceService {
import java.util.List;
public interface IoOrderInvoiceService {
List<IoOrderInvoiceEntity> findByBillNo(String billNo);
boolean deleteByInvId(Integer id);

@ -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<IoOrderInvoiceEntity> findByBillNo(String orderIdFk) {
return ioOrderInvoiceMapper.selectList(new QueryWrapper<IoOrderInvoiceEntity>().eq("orderIdFk", orderIdFk));
}
@Override
public boolean deleteByInvId(Integer id) {
return this.ioOrderInvoiceMapper.deleteById(id) > 0;

@ -34,6 +34,12 @@
<if test="orderIdFk != null and orderIdFk != ''">
AND ic.orderIdFk = #{orderIdFk}
</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 != ''">
AND ic.bizIdFk = #{bizIdFk}
</if>

Loading…
Cancel
Save