#
whycq
2023-07-18 02d6a768149f3428583c30fa7caa1ce446d53291
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -6,17 +6,15 @@
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.BasAgv;
import com.zy.asrs.entity.MatCode;
import com.zy.asrs.entity.WaitPakin;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.CombParam;
import com.zy.asrs.service.BasAgvService;
import com.zy.asrs.service.MatCodeService;
import com.zy.asrs.service.MobileService;
import com.zy.asrs.service.WaitPakinService;
import com.zy.asrs.entity.param.ERPselectParam;
import com.zy.asrs.entity.param.FullStoreParam;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.VersionUtils;
import com.zy.common.model.agv.AgvCommand;
import com.zy.common.model.agv.AgvResult;
import com.zy.common.service.erp.ErpSqlServer;
import com.zy.common.utils.HttpHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -25,7 +23,9 @@
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
import java.text.MessageFormat;
import java.util.Date;
import java.util.List;
/**
 * 移动端服务核心类
@@ -43,6 +43,14 @@
    private WaitPakinService waitPakinService;
    @Autowired
    private BasAgvService basAgvService;
    @Autowired
    private ErpSqlServer erpSqlServer;
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private LocMastService locMastService;
    @Autowired
    private LocDetlService locDetlService;
    @Override
    @Transactional
@@ -53,9 +61,13 @@
        if (Cools.isEmpty(param.getCombMats()) && Cools.isEmpty(param.getProductCode())) {
            throw new CoolException(BaseRes.PARAM);
        }
        int count = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
                eq("zpallet", param.getBarcode()).eq("io_status", "N"));
        if (count > 0) {
        int waitPakinCount = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
                eq("zpallet", param.getBarcode())
                //.eq("io_status", "N")
        );
        int wrkMastCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("barcode", param.getBarcode()));
        int locDetlCount = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode()));
        if (waitPakinCount > 0 || wrkMastCount > 0 || locDetlCount > 0) {
            throw new CoolException("条码数据已存在");
        }
        if (Cools.isEmpty(param.getBillNo())) {
@@ -75,6 +87,12 @@
                    waitPakin.setModiUser(userId);
                    waitPakin.setModiTime(new Date());
                    VersionUtils.setWaitPakIn(waitPakin, matCode);
//                    waitPakin.setMatnr(matCode.getMatNo()+"|"+combMat.getMnemonic()); //产品编码|生产单号
//                    waitPakin.setBname(matCode.getMatNo());
                    // 如果生成单号不为空插入生产单号
                    if (!Cools.isEmpty(combMat.getMnemonic())) {
                        waitPakin.setMnemonic(combMat.getMnemonic());
                    }
                    if (!waitPakinService.insert(waitPakin)) {
                        throw new CoolException("保存数据失败");
@@ -112,6 +130,18 @@
                    }
                }
                // 判断无通知单号supplier的入库数据,CPICMO插入数据
                List<CombParam.CombMat> erpMatList = param.getCombMats();
                for (CombParam.CombMat es : erpMatList) {
                    if (Cools.isEmpty(es.getSupplier())) {
                        String maxKeySql = "select min(FInterID) as num from CPICMO";
                        List<ERPselectParam> maxKeyList = erpSqlServer.select(maxKeySql, ERPselectParam.class);
                        Integer maxKey = maxKeyList.get(0).getNum();
                        String ErpSql = "insert into CPICMO(FBrNo, FSourceBillNo, FBillNo, FTranType, FStatus, FMRP, FItemID, FQty, FCommitQty, FSourceEntryID, FClosed, FUnitID, FAuxCommitQty, FCancellation, FQtyFinish, FQtyScrap, FQtyLost, FAuxQtyFinish, FAuxQtyScrap, FAuxQtyLost, FMrpClosed, FBomInterID, FQtyPass, FAuxQtyPass, FQtyBack, FAuxQtyBack, FFinishTime, FReadyTIme, FPowerCutTime, FFixTime, FWaitItemTime, FWaitToolTime, FTaskID, FWorkTypeID, FCostObjID, FStockQty, FAuxStockQty, FSuspend, FReleasedQty, FReleasedAuxQty, FUnScheduledQty, FUnScheduledAuxQty, FSubEntryID, FScheduleID, FPlanOrderInterID, FProcessPrice, FProcessFee, FGMPBatchNo, FGMPCollectRate, FGMPItemBalance, FGMPBulkQty, FCustID, FMRPLockFlag, FHandworkClose, FInHighLimit, FInHighLimitQty, FInLowLimit, FInLowLimitQty, FChangeTimes, FCheckCommitQty, FAuxCheckCommitQty, FPlanConfirmed, FPlanMode, FMTONo, FPrintCount, FFinClosed, FStockFlag, FStartFlag, FVchBillNo, FVchInterID, FCardClosed, FHRReadyTime, FSourceTranType, FSourceInterId, FInterID, FAuxQty, FAuxInHighLimitQty, FAuxInLowLimitQty, Fnumber, FWorkShop,Fflag_rw) values (0, ''{6}'', '0', 85, 0, 1052, 0, 0, 0, 0, 0, 250, {5,number,#}, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '0', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14036, '0', 0, 0, 14215, 0, '0', 0, 1059, 0, 0, 0, 0, {0,number,#}, {1,number,#}, {2,number,#}, {3,number,#}, ''{4}'', 11378, 1)";
                        ErpSql = MessageFormat.format(ErpSql, maxKey - 1, es.getCount(), es.getCount(), es.getCount(), es.getMatNo(), es.getCount(), es.getMnemonic());
                        erpSqlServer.update(ErpSql);
                    }
                }
            } else {
                WaitPakin waitPakin = new WaitPakin();
@@ -136,6 +166,18 @@
                if (!waitPakinService.insert(waitPakin)) {
                    throw new CoolException("保存数据失败");
                }
                // 判断无通知单号supplier的入库数据,CPICMO插入数据
                List<CombParam.CombMat> erpMatList = param.getCombMats();
                for (CombParam.CombMat es : erpMatList) {
                    if (Cools.isEmpty(es.getSupplier())) {
                        String maxKeySql = "select min(FInterID) as num from CPICMO";
                        List<ERPselectParam> maxKeyList = erpSqlServer.select(maxKeySql, ERPselectParam.class);
                        Integer maxKey = maxKeyList.get(0).getNum();
                        String ErpSql = "insert into CPICMO(FBrNo, FSourceBillNo, FBillNo, FTranType, FStatus, FMRP, FItemID, FQty, FCommitQty, FSourceEntryID, FClosed, FUnitID, FAuxCommitQty, FCancellation, FQtyFinish, FQtyScrap, FQtyLost, FAuxQtyFinish, FAuxQtyScrap, FAuxQtyLost, FMrpClosed, FBomInterID, FQtyPass, FAuxQtyPass, FQtyBack, FAuxQtyBack, FFinishTime, FReadyTIme, FPowerCutTime, FFixTime, FWaitItemTime, FWaitToolTime, FTaskID, FWorkTypeID, FCostObjID, FStockQty, FAuxStockQty, FSuspend, FReleasedQty, FReleasedAuxQty, FUnScheduledQty, FUnScheduledAuxQty, FSubEntryID, FScheduleID, FPlanOrderInterID, FProcessPrice, FProcessFee, FGMPBatchNo, FGMPCollectRate, FGMPItemBalance, FGMPBulkQty, FCustID, FMRPLockFlag, FHandworkClose, FInHighLimit, FInHighLimitQty, FInLowLimit, FInLowLimitQty, FChangeTimes, FCheckCommitQty, FAuxCheckCommitQty, FPlanConfirmed, FPlanMode, FMTONo, FPrintCount, FFinClosed, FStockFlag, FStartFlag, FVchBillNo, FVchInterID, FCardClosed, FHRReadyTime, FSourceTranType, FSourceInterId, FInterID, FAuxQty, FAuxInHighLimitQty, FAuxInLowLimitQty, Fnumber, FWorkShop, Fflag_rw) values (0, ''{6}'', '0', 85, 0, 1052, 0, 0, 0, 0, 0, 250, {5,number,#}, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '0', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14036, '0', 0, 0, 14215, 0, '0', 0, 1059, 0, 0, 0, 0, {0,number,#}, {1,number,#}, {2,number,#}, {3,number,#}, ''{4}'', 11378, 1)";
                        ErpSql = MessageFormat.format(ErpSql, maxKey - 1, es.getCount(), es.getCount(), es.getCount(), es.getMatNo(), es.getCount(), es.getMnemonic());
                        erpSqlServer.update(ErpSql);
                    }
                }
            }
        } else {
@@ -242,9 +284,13 @@
        if (Cools.isEmpty(param.getCombMats()) && Cools.isEmpty(param.getProductCode())) {
            throw new CoolException(BaseRes.PARAM);
        }
        int count = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
                eq("zpallet", param.getBarcode()).eq("io_status", "N"));
        if (count > 0) {
        int waitPakinCount = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
                        eq("zpallet", param.getBarcode())
                //.eq("io_status", "N")
        );
        int wrkMastCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("barcode", param.getBarcode()));
        int locDetlCount = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode()));
        if (waitPakinCount > 0 || wrkMastCount > 0 || locDetlCount > 0) {
            throw new CoolException("条码数据已存在");
        }
        // 关联通知单组托