guoyuji
2024-07-19 ed37f39e2e558e879b4c73fde15a985cad1256d6
north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
@@ -3,6 +3,7 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.erp.dto.mm.FinishedOperateLogDTO;
import com.example.erp.entity.mm.FinishedGoodsInventory;
import com.example.erp.entity.mm.FinishedOperateLog;
@@ -13,6 +14,8 @@
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.mapper.sd.OrderMapper;
import com.example.erp.service.userInfo.SysErrorService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -20,6 +23,7 @@
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.sql.SQLException;
import java.sql.Wrapper;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
@@ -34,6 +38,10 @@
    FinishedOperateLogMapper finishedOperateLogMapper;
    @Autowired
    BasicWarehouseTypeMapper basicWarehouseTypeMapper;
    @Autowired
    OrderDetailMapper orderDetailMapper;
    @Autowired
    OrderMapper orderMapper;
    @Autowired
    SysErrorService sysErrorService;
@@ -615,8 +623,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());
                        //判断订单是否全部入库
@@ -677,6 +688,47 @@
    }
    public Boolean oneClickStorage(String  orderId,String  userName) {
        boolean saveState = true;
        Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
        try {
            String oddNumber= orderNumberSetting("入库");
            Order order = orderMapper.selectOne(new QueryWrapper<Order>().eq("order_id",orderId));
            if(order.getWarehousing()==0){
                List<OrderDetail> orderDetailList=finishedGoodsInventoryMapper.getSelectOrderDetail(orderId);
                for (OrderDetail orderDetail:orderDetailList){
                    FinishedGoodsInventory finishedGoodsInventory = finishedGoodsInventoryMapper.findOrderNumberd(orderDetail.getOrderId(),orderDetail.getOrderNumber());
                    if(finishedGoodsInventory!=null){
                        //修改库存表入库数量
                        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;
    }