廖井涛
2024-07-07 ec4d06c37f948a24f5313b60b4d27327d6975bdc
north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
@@ -13,6 +13,7 @@
import com.example.erp.mapper.mm.BasicWarehouseTypeMapper;
import com.example.erp.mapper.mm.FinishedGoodsInventoryMapper;
import com.example.erp.mapper.mm.FinishedOperateLogMapper;
import com.example.erp.mapper.sd.OrderDetailMapper;
import com.example.erp.service.userInfo.SysErrorService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -34,6 +35,8 @@
    FinishedOperateLogMapper finishedOperateLogMapper;
    @Autowired
    BasicWarehouseTypeMapper basicWarehouseTypeMapper;
    @Autowired
    OrderDetailMapper orderDetailMapper;
    @Autowired
    SysErrorService sysErrorService;
@@ -176,7 +179,7 @@
                    Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getDeliveryDetail().getOrderId());
                    Integer orderDeliveryQuantitySum = finishedGoodsInventoryMapper.findOrderDeliveryQuantitySum(orderDetail.getDeliveryDetail().getOrderId());
                    Integer orderNumberdsum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getDeliveryDetail().getOrderId());
                    Integer deliverysum = finishedGoodsInventoryMapper.findDeliveryQuantity(orderDetail.getDeliveryDetail().getDeliveryId());
                    Integer deliverydetailsum = finishedGoodsInventoryMapper.findDeliverydetailsum(orderDetail.getDeliveryDetail().getDeliveryId(),0);
@@ -184,7 +187,7 @@
                        deliverydetailsum=0;
                    }
                    /*System.out.println("订单总数:" + ordersum + "订单已发数量:" + orderDeliveryQuantitySum + "准备出库数量" +
                    /*System.out.println("订单总数:" + ordersum + "订单库存数:" + orderNumberdsum + "准备出库数量" +
                            orderDetail.getWarehouseNum()+ "发货数量" + orderDetail.getDeliveryDetail().getQuantity()+ "发货总数" +
                            deliverysum+ "已发数量" + deliverydetailsum);*/
                    if (finishedGoodsInventorycount > 0) {
@@ -200,7 +203,8 @@
                            //修改订单表发货状态
                            finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),1);
                            //判断订单是否全部发货
                            if (ordersum == (orderDeliveryQuantitySum + orderDetail.getWarehouseNum())) {
                            if (orderNumberdsum == orderDetail.getWarehouseNum()) {
                                //if (ordersum == (orderDeliveryQuantitySum + orderDetail.getWarehouseNum())) {
                                //修改订单表发货状态
                                finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),2);
                            }
@@ -614,8 +618,11 @@
                        finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"已作废");
                        //修改库存表入库数量
                        finishedGoodsInventoryMapper.updateInventoryOut(finishedOperateLog);
                        //修改流程卡表入库数量
                        finishedGoodsInventoryMapper.updateflowcardOut(finishedOperateLog);
                        if(finishedOperateLog.getProcessId()!=null){
                            //修改流程卡表入库数量
                            finishedGoodsInventoryMapper.updateflowcardOut(finishedOperateLog);
                        }
                        //修改订单明细表入库数量
                        finishedGoodsInventoryMapper.updateOutOrderNumberConut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getQuantity());
                        //判断订单是否全部入库
@@ -676,6 +683,44 @@
    }
    public Boolean oneClickStorage(String  orderId,String  userName) {
        boolean saveState = true;
        Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
        try {
            String oddNumber= orderNumberSetting("入库");
            List<OrderDetail> orderDetailList=finishedGoodsInventoryMapper.getSelectOrderDetail(orderId);
            for (OrderDetail orderDetail:orderDetailList){
                Integer finishedGoodsInventoryCount = finishedGoodsInventoryMapper.findOrderNumberdcount(orderDetail.getOrderId(),orderDetail.getOrderNumber());
                System.out.println(finishedGoodsInventoryCount);
                if(finishedGoodsInventoryCount>0){
                    //修改库存表入库数量
                    finishedGoodsInventoryMapper.updateOrderInventory(orderDetail);
                }else{
                    finishedGoodsInventoryMapper.insertOrderFinishedGoodsInventory(orderDetail);
                }
                finishedOperateLogMapper.insertOrderFinishedOperateLog(orderDetail,userName,oddNumber);
                finishedGoodsInventoryMapper.updateIntOrderNumberConut(orderDetail.getOrderId(),orderDetail.getOrderNumber(),Integer.parseInt(orderDetail.getQuantity().toString()));
            }
            finishedGoodsInventoryMapper.updateOrderWarehousingState(orderId,2);
        } catch (Exception e) {
            TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
            //将异常传入数据库
            SysError sysError = new SysError();
            sysError.setError(e.toString());
            sysError.setFunc("saveOrder");
            sysErrorService.insert(sysError);
            saveState = false;
        }
        return saveState;
    }