| | |
| | | package com.zy.asrs.service.impl; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.baomidou.mybatisplus.mapper.Wrapper; |
| | | import com.baomidou.mybatisplus.plugins.Page; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import com.core.common.Cools; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.LocNormalLog; |
| | | import com.zy.asrs.entity.LocNormal; |
| | | import com.zy.asrs.entity.WaitPakin; |
| | | import com.zy.asrs.entity.WaitPakinLog; |
| | | import com.zy.asrs.entity.param.ERPselectParam; |
| | | import com.zy.asrs.mapper.LocNormalMapper; |
| | | import com.zy.asrs.mapper.OutStockMapper; |
| | | import com.zy.asrs.service.LocNormalLogService; |
| | | import com.zy.asrs.service.LocNormalService; |
| | | import com.zy.asrs.service.WaitPakinLogService; |
| | | import com.zy.asrs.service.WaitPakinService; |
| | | import com.zy.asrs.utils.VersionUtils; |
| | | import com.zy.common.service.erp.ErpService; |
| | | import com.zy.common.service.erp.ErpSqlServer; |
| | | import com.zy.common.service.erp.entity.CPICMO; |
| | |
| | | WaitPakinLogService waitPakinLogService; |
| | | @Autowired |
| | | ErpService erpService; |
| | | @Autowired |
| | | LocNormalLogService locNormalLogService; |
| | | |
| | | @Override |
| | | public List<LocNormal> getLocNormalData() { |
| | |
| | | @Override |
| | | public void outLocNormal(String matnr, Long modiUser, Date modiTime, Integer id) { |
| | | baseMapper.outLocNormal(matnr, modiUser, modiTime, id); |
| | | LocNormal data = locNormalService.selectOne(new EntityWrapper<LocNormal>().eq("id", id)); |
| | | // 生成平仓出入库记录 |
| | | LocNormalLog locLog = new LocNormalLog(); |
| | | VersionUtils.setLocNormalLog(locLog, data); |
| | | locLog.setAnfme(data.getAnfme().doubleValue()); |
| | | locLog.setIoType(2); |
| | | locLog.setCreateTime(new Date()); |
| | | locLog.setCreateUser(modiUser); |
| | | if (!locNormalLogService.insert(locLog)) { |
| | | String logStr = JSON.toJSONString(locLog); |
| | | log.info("平仓出库记录插入失败,数据:" + logStr); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void removeLocNormal(String matnr, Long modiUser, Date modiTime, Integer id) { |
| | | baseMapper.removeLocNormal(matnr, modiUser, modiTime, id); |
| | | LocNormal data = locNormalService.selectOne(new EntityWrapper<LocNormal>().eq("id", id)); |
| | | // 生成平仓出入库记录 |
| | | LocNormalLog locLog = new LocNormalLog(); |
| | | VersionUtils.setLocNormalLog(locLog, data); |
| | | locLog.setAnfme(data.getAnfme().doubleValue()); |
| | | locLog.setIoType(4); // 删除 |
| | | locLog.setCreateTime(new Date()); |
| | | locLog.setCreateUser(modiUser); |
| | | if (!locNormalLogService.insert(locLog)) { |
| | | String logStr = JSON.toJSONString(locLog); |
| | | log.info("平仓库存删除记录插入失败,数据:" + logStr); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | |
| | | // cust_wait_pakin转cust_wait_pakin_log,并更新数量 |
| | | custWaitPakinToLog(list.get(i), updateAnfme); |
| | | } |
| | | // 生成平仓出入库记录 |
| | | LocNormalLog locLog = new LocNormalLog(); |
| | | VersionUtils.setLocNormalLog(locLog, list.get(i)); |
| | | locLog.setAnfme(updateAnfme); |
| | | locLog.setIoType(1); |
| | | locLog.setCreateTime(new Date()); |
| | | locLog.setCreateUser(list.get(i).getAppeUser()); |
| | | if (!locNormalLogService.insert(locLog)) { |
| | | String logStr = JSON.toJSONString(locLog); |
| | | log.info("平仓入库记录插入失败,数据:" + logStr); |
| | | } |
| | | } else { |
| | | // erp更新 |
| | | updateCPICMO(list.get(i)); |
| | |
| | | // cust_wait_pakin转cust_wait_pakin_log,并更新数量 |
| | | custWaitPakinToLog(list.get(i), list.get(i).getAnfme().doubleValue()); |
| | | } |
| | | // 生成平仓出入库记录 |
| | | LocNormalLog locLog = new LocNormalLog(); |
| | | VersionUtils.setLocNormalLog(locLog, list.get(i)); |
| | | locLog.setAnfme(list.get(i).getAnfme().doubleValue()); |
| | | locLog.setIoType(1); |
| | | locLog.setCreateTime(new Date()); |
| | | locLog.setCreateUser(list.get(i).getAppeUser()); |
| | | if (!locNormalLogService.insert(locLog)) { |
| | | String logStr = JSON.toJSONString(locLog); |
| | | log.info("平仓入库记录插入失败,数据:" + logStr); |
| | | } |
| | | } |
| | | } else { |
| | | // throw new CoolException("通知单号不可为空"); 通知单号空的情况下,往CPICMO表插入手动入库数据 |
| | |
| | | if (!Cools.isEmpty(oldLocList)) { |
| | | // erp更新 |
| | | if (Cools.isEmpty(list.get(i).getSupplier())) { |
| | | String maxKeySql = "select max(FInterID) as num from CPICMO"; |
| | | 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) 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)"; |
| | | ErpSql = MessageFormat.format(ErpSql, maxKey + 1, list.get(i).getAnfme(), list.get(i).getAnfme(), list.get(i).getAnfme(), list.get(i).getMatnr(), list.get(i).getAnfme(), list.get(i).getMnemonic()); |
| | | ErpSql = MessageFormat.format(ErpSql, maxKey - 1, list.get(i).getAnfme(), list.get(i).getAnfme(), list.get(i).getAnfme(), list.get(i).getMatnr(), list.get(i).getAnfme(), list.get(i).getMnemonic()); |
| | | erpSqlServer.update(ErpSql); |
| | | } |
| | | // Double updateAnfme = new Double(list.get(i).getAnfme().doubleValue()); |
| | | Double updateAnfme = new Double(list.get(i).getAnfme().doubleValue()); |
| | | // 平仓入库(更新)逻辑 |
| | | list.get(i).setAnfme(oldLocList.getAnfme().add(list.get(i).getAnfme())); |
| | | updateList.add(list.get(i)); |
| | |
| | | // cust_wait_pakin转cust_wait_pakin_log,并更新数量 |
| | | // custWaitPakinToLog(list.get(i), updateAnfme); |
| | | } |
| | | // 生成平仓出入库记录 |
| | | LocNormalLog locLog = new LocNormalLog(); |
| | | VersionUtils.setLocNormalLog(locLog, list.get(i)); |
| | | locLog.setAnfme(updateAnfme); |
| | | locLog.setIoType(1); |
| | | locLog.setCreateTime(new Date()); |
| | | locLog.setCreateUser(list.get(i).getAppeUser()); |
| | | if (!locNormalLogService.insert(locLog)) { |
| | | String logStr = JSON.toJSONString(locLog); |
| | | log.info("平仓入库记录插入失败,数据:" + logStr); |
| | | } |
| | | } else { |
| | | // erp更新 |
| | | if (Cools.isEmpty(list.get(i).getSupplier())) { |
| | | String maxKeySql = "select max(FInterID) as num from CPICMO"; |
| | | 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) 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)"; |
| | | ErpSql = MessageFormat.format(ErpSql, maxKey + 1, list.get(i).getAnfme(), list.get(i).getAnfme(), list.get(i).getAnfme(), list.get(i).getMatnr(), list.get(i).getAnfme(), list.get(i).getMnemonic()); |
| | | ErpSql = MessageFormat.format(ErpSql, maxKey - 1, list.get(i).getAnfme(), list.get(i).getAnfme(), list.get(i).getAnfme(), list.get(i).getMatnr(), list.get(i).getAnfme(), list.get(i).getMnemonic()); |
| | | erpSqlServer.update(ErpSql); |
| | | } |
| | | // 平仓入库逻辑 |
| | |
| | | if (baseMapper.pdaLocNormalIn(addList) > 0) { |
| | | // cust_wait_pakin转cust_wait_pakin_log,并更新数量 |
| | | // custWaitPakinToLog(list.get(i), list.get(i).getAnfme().doubleValue()); |
| | | } |
| | | // 生成平仓出入库记录 |
| | | LocNormalLog locLog = new LocNormalLog(); |
| | | VersionUtils.setLocNormalLog(locLog, list.get(i)); |
| | | locLog.setAnfme(list.get(i).getAnfme().doubleValue()); |
| | | locLog.setIoType(1); |
| | | locLog.setCreateTime(new Date()); |
| | | locLog.setCreateUser(list.get(i).getAppeUser()); |
| | | if (!locNormalLogService.insert(locLog)) { |
| | | String logStr = JSON.toJSONString(locLog); |
| | | log.info("平仓入库记录插入失败,数据:" + logStr); |
| | | } |
| | | } |
| | | } |
| | |
| | | // cust_wait_pakin转cust_wait_pakin_log,并更新数量 |
| | | custWaitPakinToLog(list.get(i), updateAnfme); |
| | | } |
| | | // 生成平仓出入库记录 |
| | | LocNormalLog locLog = new LocNormalLog(); |
| | | VersionUtils.setLocNormalLog(locLog, list.get(i)); |
| | | if (Cools.isEmpty(locLog.getMemo())) { |
| | | locLog.setMemo("原材料"); |
| | | } |
| | | locLog.setAnfme(increaseAnfme.doubleValue()); |
| | | locLog.setIoType(1); |
| | | locLog.setCreateTime(new Date()); |
| | | locLog.setCreateUser(list.get(i).getAppeUser()); |
| | | if (!locNormalLogService.insert(locLog)) { |
| | | String logStr = JSON.toJSONString(locLog); |
| | | log.info("平仓材料入库记录插入失败,数据:" + logStr); |
| | | } |
| | | // erp更新 InStockbill和InStockBillEntry |
| | | erpService.incrementPakIn(list.get(i).getSupplier(), list.get(i).getMatnr(), increaseAnfme.doubleValue()); |
| | | } else { |
| | |
| | | if (baseMapper.pdaLocNormalIn(addList) > 0) { |
| | | // cust_wait_pakin转cust_wait_pakin_log,并更新数量 |
| | | custWaitPakinToLog(list.get(i), list.get(i).getAnfme().doubleValue()); |
| | | } |
| | | // 生成平仓出入库记录 |
| | | LocNormalLog locLog = new LocNormalLog(); |
| | | VersionUtils.setLocNormalLog(locLog, list.get(i)); |
| | | locLog.setAnfme(list.get(i).getAnfme().doubleValue()); |
| | | if (Cools.isEmpty(locLog.getMemo())) { |
| | | locLog.setMemo("原材料"); |
| | | } |
| | | locLog.setIoType(1); |
| | | locLog.setCreateTime(new Date()); |
| | | locLog.setCreateUser(list.get(i).getAppeUser()); |
| | | if (!locNormalLogService.insert(locLog)) { |
| | | String logStr = JSON.toJSONString(locLog); |
| | | log.info("平仓材料入库记录插入失败,数据:" + logStr); |
| | | } |
| | | // erp更新 InStockbill和InStockBillEntry |
| | | erpService.incrementPakIn(list.get(i).getSupplier(), list.get(i).getMatnr(), list.get(i).getAnfme().doubleValue()); |
| | |
| | | // cust_wait_pakin转cust_wait_pakin_log,并更新数量 |
| | | custWaitPakinToLog(list.get(i), updateAnfme); |
| | | } |
| | | // 生成平仓出入库记录 |
| | | LocNormalLog locLog = new LocNormalLog(); |
| | | VersionUtils.setLocNormalLog(locLog, list.get(i)); |
| | | locLog.setAnfme(updateAnfme); |
| | | locLog.setIoType(1); |
| | | locLog.setCreateTime(new Date()); |
| | | locLog.setCreateUser(list.get(i).getAppeUser()); |
| | | if (!locNormalLogService.insert(locLog)) { |
| | | String logStr = JSON.toJSONString(locLog); |
| | | log.info("平仓入库记录插入失败,数据:" + logStr); |
| | | } |
| | | |
| | | } else { |
| | | // erp更新 |
| | | updateCPICMO(list.get(i)); |
| | |
| | | if (baseMapper.pdaLocNormalIn(addList) > 0){ |
| | | // cust_wait_pakin转cust_wait_pakin_log,并更新数量 |
| | | custWaitPakinToLog(list.get(i), list.get(i).getAnfme().doubleValue()); |
| | | } |
| | | // 生成平仓出入库记录 |
| | | LocNormalLog locLog = new LocNormalLog(); |
| | | VersionUtils.setLocNormalLog(locLog, list.get(i)); |
| | | locLog.setAnfme(list.get(i).getAnfme().doubleValue()); |
| | | locLog.setIoType(1); |
| | | locLog.setCreateTime(new Date()); |
| | | locLog.setCreateUser(list.get(i).getAppeUser()); |
| | | if (!locNormalLogService.insert(locLog)) { |
| | | String logStr = JSON.toJSONString(locLog); |
| | | log.info("平仓入库记录插入失败,数据:" + logStr); |
| | | } |
| | | } |
| | | } else { |
| | |
| | | for (Integer i = 0; i < list.size(); i++) { |
| | | if (list.get(i).getAnfme().equals(list.get(i).getAnfmeOut())) { |
| | | baseMapper.pdaLocNormalOut1(list.get(i).getId(), list.get(i).getMatnr(), list.get(i).getModiUser(), list.get(i).getModiTime(), list.get(i).getWarehouse()); |
| | | // 生成平仓出入库记录 |
| | | LocNormalLog locLog = new LocNormalLog(); |
| | | VersionUtils.setLocNormalLog(locLog, list.get(i)); |
| | | locLog.setAnfme(list.get(i).getAnfmeOut().doubleValue()); |
| | | locLog.setIoType(2); |
| | | locLog.setCreateTime(new Date()); |
| | | locLog.setCreateUser(list.get(i).getAppeUser()); |
| | | if (!locNormalLogService.insert(locLog)) { |
| | | String logStr = JSON.toJSONString(locLog); |
| | | log.info("平仓出库记录插入失败,数据:" + logStr); |
| | | } |
| | | } |
| | | if (list.get(i).getAnfmeOut().compareTo(list.get(i).getAnfme()) == -1) { |
| | | BigDecimal diff = (list.get(i).getAnfme()).subtract(list.get(i).getAnfmeOut()); |
| | | baseMapper.pdaLocNormalOut2(list.get(i).getId(), list.get(i).getMatnr(), diff, list.get(i).getModiUser(), list.get(i).getModiTime(), list.get(i).getWarehouse()); |
| | | // 生成平仓出入库记录 |
| | | LocNormalLog locLog = new LocNormalLog(); |
| | | VersionUtils.setLocNormalLog(locLog, list.get(i)); |
| | | locLog.setAnfme((list.get(i).getAnfmeOut()).doubleValue()); |
| | | locLog.setIoType(2); |
| | | locLog.setCreateTime(new Date()); |
| | | locLog.setCreateUser(list.get(i).getAppeUser()); |
| | | if (!locNormalLogService.insert(locLog)) { |
| | | String logStr = JSON.toJSONString(locLog); |
| | | log.info("平仓出库记录插入失败,数据:" + logStr); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<LocNormal> queryLocNorlMatnr(String fbillNo) { |
| | | public List<LocNormal> queryLocNorlMatnr(String fbillNo, String mnemonic) { |
| | | List<OutStockBillEntry> matList = outStockMapper.queryMatnrWithBillNo(fbillNo); |
| | | List<LocNormal> locNormal = new ArrayList<>(); |
| | | List<LocNormal> locNormalResult = new ArrayList<>(); |
| | | for (Integer i = 0; i < matList.size(); i++) { |
| | | locNormal = baseMapper.queryLocNorlMatnr(matList.get(i).getFnumber()) ; |
| | | locNormal = baseMapper.queryLocNorlMatnr(matList.get(i).getFnumber(), mnemonic) ; |
| | | if (locNormal.size() > 0) { |
| | | for (LocNormal e:locNormal) { |
| | | LocNormal obj = new LocNormal(); |