From 1c8293df91d43c4de241a39f204e3e60a1123456 Mon Sep 17 00:00:00 2001 From: mengjiao <3338049200@qq,com> Date: Fri, 9 Aug 2024 13:44:48 +0800 Subject: [PATCH] =?UTF-8?q?wms103=E6=9A=82=E6=94=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/system/api/RemoteSapService.java | 7 +- .../api/factory/RemoteSapFallbackFactory.java | 5 + .../controller/WmsToWCSmissionController.java | 12 +- .../com/op/wms/domain/OdsProcureOrder.java | 47 +++++++ .../op/wms/mapper/WmsRawOrderInSnMapper.java | 2 + .../com/op/wms/service/IBaseAreaService.java | 2 + .../wms/service/impl/BaseAreaServiceImpl.java | 7 + .../impl/OdsProcureOrderServiceImpl.java | 120 +++++++++++++++--- .../mapper/wms/OdsProcureOrderMapper.xml | 4 + .../wms/WmsOdsMateStorageNewsMapper.xml | 2 +- .../wms/WmsOdsMateStorageNewsSnMapper.xml | 3 +- .../mapper/wms/WmsRawOrderInSnMapper.xml | 34 +++-- 12 files changed, 210 insertions(+), 35 deletions(-) diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java index dfd7d205..9a2dec95 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java @@ -125,4 +125,9 @@ public interface RemoteSapService { @PostMapping("/sap/removeDatasource") public R removeDatasource(@RequestBody DataSourcePropertyDTO dataSourceProperty); -} + /** + *来料暂收接口 + */ + @PostMapping("/sap/temporarilyCollected") + public R temporarilyCollected(@RequestBody(required = false) List mapList) ; + } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java index eebdb006..c7bc2477 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java @@ -138,6 +138,11 @@ public class RemoteSapFallbackFactory implements FallbackFactory mapList) { + return R.fail("来料暂收过账失败" + throwable.getMessage()); + } + }; } } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java index 83a049aa..a2c14243 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java @@ -6,6 +6,7 @@ import com.op.common.core.utils.StringUtils; import com.op.common.core.web.domain.AjaxResult; import com.op.common.core.web.page.TableDataInfo; +import com.op.common.security.annotation.RequiresPermissions; import com.op.system.api.RemoteOpenService; import com.op.wms.domain.*; import com.op.wms.service.*; @@ -33,6 +34,8 @@ public class WmsToWCSmissionController { private IOdsWhiteEmbryoService iOdsWhiteEmbryoService; @Autowired private IOdsProductEmbryoInventoryService odsProductEmbryoInventoryService; + @Autowired + private IBaseAreaService baseAreaService; /** @@ -723,6 +726,13 @@ public class WmsToWCSmissionController { return iWmsToWCSmissionService.liftTakeOrPutCompleted(wcsdto); } - + /** + * 查询库区列表 + */ + @PostMapping("/listTableDataInfo") + public AjaxResult list(@RequestBody BaseArea baseArea) { + List list = baseAreaService.selectBaseAreaListSC(baseArea); + return success(list); + } } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/domain/OdsProcureOrder.java b/op-modules/op-wms/src/main/java/com/op/wms/domain/OdsProcureOrder.java index 0eb96bde..77433d6a 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/domain/OdsProcureOrder.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/domain/OdsProcureOrder.java @@ -77,6 +77,17 @@ public class OdsProcureOrder extends BaseEntity { @Excel(name = "仓库编码") private String whCode; + @Excel(name = "仓库编码") + private String waCode; + + public String getWaCode() { + return waCode; + } + + public void setWaCode(String waCode) { + this.waCode = waCode; + } + public String getWhCode() { return whCode; } @@ -337,6 +348,42 @@ public class OdsProcureOrder extends BaseEntity { */ @Excel(name = "企业编码") private String enterpriseCode; + private String SapTempInfor; + private String SapTempStatus; + private String SAPstatus; + private String SAPmessage; + + public String getSapTempInfor() { + return SapTempInfor; + } + + public void setSapTempInfor(String sapTempInfor) { + SapTempInfor = sapTempInfor; + } + + public String getSapTempStatus() { + return SapTempStatus; + } + + public void setSapTempStatus(String sapTempStatus) { + SapTempStatus = sapTempStatus; + } + + public String getSAPstatus() { + return SAPstatus; + } + + public void setSAPstatus(String SAPstatus) { + this.SAPstatus = SAPstatus; + } + + public String getSAPmessage() { + return SAPmessage; + } + + public void setSAPmessage(String SAPmessage) { + this.SAPmessage = SAPmessage; + } public void setSiteCode(String siteCode) { this.siteCode = siteCode; diff --git a/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsRawOrderInSnMapper.java b/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsRawOrderInSnMapper.java index 51766dd5..3e15e639 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsRawOrderInSnMapper.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsRawOrderInSnMapper.java @@ -67,4 +67,6 @@ public interface WmsRawOrderInSnMapper { List selecPurchaseOrderdeliPdaList(OdsProcureOrder odsProcureOrder); void insertWmsLogotypeTable(WmsLogotypeTable wmsLogotypeTable); + + WmsRawOrderInSn selecPurchaseOrderdeliPdaById(OdsProcureOrder odsProcureOrder); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/IBaseAreaService.java b/op-modules/op-wms/src/main/java/com/op/wms/service/IBaseAreaService.java index 764ad9cb..2bfa3e82 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/IBaseAreaService.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/IBaseAreaService.java @@ -62,4 +62,6 @@ public interface IBaseAreaService { boolean checkAreaCodeUnique(BaseArea baseArea); boolean checkAreaDescUnique(BaseArea baseArea); + + List selectBaseAreaListSC(BaseArea baseArea); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseAreaServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseAreaServiceImpl.java index 4da7d6b0..8ac8d34d 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseAreaServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseAreaServiceImpl.java @@ -3,6 +3,7 @@ package com.op.wms.service.impl; import java.util.List; import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.utils.DateUtils; import com.op.common.security.utils.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -133,4 +134,10 @@ public class BaseAreaServiceImpl implements IBaseAreaService { } } + @Override + public List selectBaseAreaListSC(BaseArea baseArea) { + DynamicDataSourceContextHolder.push("ds_" + baseArea.getFactoryCode()); + return baseAreaMapper.selectBaseAreaList(baseArea); + } + } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java index 6f135831..3f96c3f1 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java @@ -164,9 +164,11 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { //wms_raw_order_in_sn WmsRawOrderInSn wmsRawOrderInSn = new WmsRawOrderInSn(); wmsRawOrderInSn.setRawOrderInSnId(IdUtils.fastSimpleUUID()); - wmsRawOrderInSn.setUserDefined1("1");// + wmsRawOrderInSn.setUserDefined1("1");//1是收货,2是入库 wmsRawOrderInSn.setUserDefined2(odsProcureOrder.getIncomeBatchNo());//批次 wmsRawOrderInSn.setWhCode(odsProcureOrder.getWhCode());//厂库编号 + wmsRawOrderInSn.setWaCode(odsProcureOrder.getWaCode()); + wmsRawOrderInSn.setWlCode("00001-1-01");//先都设置为同一个库位 wmsRawOrderInSn.setPoNo(order.getProcureCode());//采购单号 wmsRawOrderInSn.setPoLine(odsProcureOrder.getPoLine());//行项目 wmsRawOrderInSn.setMaterialCode(odsProcureOrder.getMaterialCode()); @@ -203,24 +205,6 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { } Integer tem = odsProcureOrderMapper.updateRealityNuById(odsProcureOrder); //插入检验集计划 -// QcCheckTaskIncomeDTO qcCheckTaskIncomeDTO = new QcCheckTaskIncomeDTO(); -// qcCheckTaskIncomeDTO.setCheckLoc("mjtest"); -// qcCheckTaskIncomeDTO.setCheckType("checkTypeLL"); -//// qcCheckTaskIncomeDTO.setCheckManCode("mobile"); -//// qcCheckTaskIncomeDTO.setCheckManName("手持测试用户"); -// qcCheckTaskIncomeDTO.setSupplierCode(order.getSupplierCode()); -// String name = odsProcureOrderMapper.selectBaseSupplier(odsProcureOrder); -// qcCheckTaskIncomeDTO.setSupplierName(name); -// qcCheckTaskIncomeDTO.setOrderType("bc"); -// qcCheckTaskIncomeDTO.setUnit(order.getUnit()); -// qcCheckTaskIncomeDTO.setFactoryCode(odsProcureOrder.getFactoryCode()); -// qcCheckTaskIncomeDTO.setQuality(odsProcureOrder.getPlanNumber()); -// qcCheckTaskIncomeDTO.setMaterialCode(odsProcureOrder.getMaterialCode()); -// qcCheckTaskIncomeDTO.setMaterialName(odsProcureOrder.getSupplierName()); -// qcCheckTaskIncomeDTO.setIncomeBatchNo(odsProcureOrder.getIncomeBatchNo()); -// qcCheckTaskIncomeDTO.setOrderNo(order.getProcureCode()); -// qcCheckTaskIncomeDTO.setIncomeTime(new Date()); -// remoteQualityService.createIncomeTask(qcCheckTaskIncomeDTO); return tem; } @@ -739,9 +723,103 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { public String PurchaseOrderdeliPdaConfirm(OdsProcureOrder odsProcureOrder) { DynamicDataSourceContextHolder.push("ds_" + odsProcureOrder.getFactoryCode()); String result="操作成功"; - List wmsRawOrderInSn = wmsRawOrderInSnMapper.selecPurchaseOrderdeliPdaList(odsProcureOrder); - + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + Date date = new Date(); + String formattedDate = dateFormat.format(date); + WmsRawOrderInSn wmsRawOrderInSn1=new WmsRawOrderInSn(); + OdsProcureOrder order = odsProcureOrderMapper.selectOdsProcureOrderByID(odsProcureOrder.getID()); + List wmsRawOrderInSns = wmsRawOrderInSnMapper.selecPurchaseOrderdeliPdaList(odsProcureOrder); + WmsRawOrderInSn wmsRawOrderInSnTEM = wmsRawOrderInSnMapper.selecPurchaseOrderdeliPdaById(odsProcureOrder); + if(wmsRawOrderInSns.size()>0){ + }else { + result="托盘都已经入库"; + return result; + } + //先sap暂收成功后,我们这边也进行收货 + BigDecimal amount= wmsRawOrderInSnTEM.getAmount();//要入库的数量 + Map paramMap=new HashMap<>(); + List mapList = new ArrayList<>(); + /** + * ZMES_103_MIGO函数取值说明:智慧工厂MIGO-103移动类型收货 + * 字段 类型 长度 小数位 描述 + * EBELN CHAR 10 0 采购凭证号 + * EBELP NUMC 5 0 采购凭证的项目编号 + * MATNR CHAR 18 0 物料号 + * WERKS CHAR 4 0 工厂 + * QUANTITY QUAN 13 3 数量 + * @param mapList + * @return + */ + paramMap.put("EBELN",order.getProcureCode()); + paramMap.put("EBELP",order.getUserDefined3()); + paramMap.put("MATNR",order.getMaterialCode()); + paramMap.put("WERKS",order.getSiteCode()); + paramMap.put("QUANTITY",amount.toString()); + R result2 = remoteSapService.temporarilyCollected(mapList); + int code = result2.getCode(); + if (code == 200){//成功 + order.setSapTempStatus("1");//0是失败。1是成功 + order.setSapTempInfor(result2.getMsg()); + odsProcureOrderMapper.updateOdsProcureOrder(order); + for (WmsRawOrderInSn wmsRawOrderInSn:wmsRawOrderInSns){ + //收货 + WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = new WmsOdsMateStorageNewsSn(); + wmsOdsMateStorageNewsSn.setMateOrderInSnId(IdUtils.fastSimpleUUID()); + wmsOdsMateStorageNewsSn.setWhCode(wmsRawOrderInSn.getWhCode());//仓库编码 + wmsOdsMateStorageNewsSn.setWaCode(wmsRawOrderInSn.getWaCode()); + wmsOdsMateStorageNewsSn.setWlCode(wmsRawOrderInSn.getWlCode());//库位编码--现在都设置为00001-1-01 + wmsOdsMateStorageNewsSn.setMaterialCode(wmsRawOrderInSn.getMaterialCode()); + wmsOdsMateStorageNewsSn.setMaterialDesc(wmsRawOrderInSn.getMaterialDesc()); + wmsOdsMateStorageNewsSn.setSn(wmsRawOrderInSn.getSn()); + wmsOdsMateStorageNewsSn.setAmount(wmsRawOrderInSn.getAmount()); + wmsOdsMateStorageNewsSn.setCreateBy(odsProcureOrder.getCreateBy()); + wmsOdsMateStorageNewsSn.setGmtCreate(new Date()); + wmsOdsMateStorageNewsSn.setUserDefined2(formattedDate);//批次 + wmsOdsMateStorageNewsSn.setFactoryCode(wmsRawOrderInSn.getFactoryCode()); + wmsOdsMateStorageNewsSn.setSapFactoryCode(wmsRawOrderInSn.getFactoryCode()); + wmsOdsMateStorageNewsSn.setActiveFlag("1"); + wmsOdsMateStorageNewsSnMapper.insertWmsOdsMateStorageNewsSn(wmsOdsMateStorageNewsSn); + //修改库存 + //2,修改库存---/加库存数量-/-冻结数量 + WmsOdsEmStorageNews wmsOdsEmStorageNews = new WmsOdsEmStorageNews(); + wmsOdsEmStorageNews.setWhCode(wmsRawOrderInSn.getWhCode());//仓库编码 + wmsOdsEmStorageNews.setWlCode(wmsRawOrderInSn.getWlCode());//库位编码 + wmsOdsEmStorageNews.setWaCode(wmsRawOrderInSn.getWaCode());//库位编码 + wmsOdsEmStorageNews.setMaterialCode(wmsRawOrderInSn.getMaterialCode()); + wmsOdsEmStorageNews.setAmount(wmsRawOrderInSn.getAmount()); + //添加库存--这个要有个判断有没有这个库存如果没有的话,就插入 + WmsOdsMateStorageNews wmsOdsMateStorageNews = wmsOdsMateStorageNewsMapper.selectByWhCodeAndMate(wmsOdsEmStorageNews); + if (wmsOdsMateStorageNews == null) { + WmsOdsMateStorageNews wmsOdsMateStorageNews1 = new WmsOdsMateStorageNews(); + wmsOdsMateStorageNews1.setStorageId(IdUtils.fastSimpleUUID()); + wmsOdsMateStorageNews1.setWhCode(wmsRawOrderInSn.getWhCode()); + wmsOdsMateStorageNews1.setWlCode(wmsRawOrderInSn.getWlCode()); + wmsOdsMateStorageNews1.setWaCode(wmsRawOrderInSn.getWaCode()); + wmsOdsMateStorageNews1.setAmount(wmsRawOrderInSn.getAmount()); + wmsOdsMateStorageNews1.setStorageAmount(wmsRawOrderInSn.getAmount()); + wmsOdsMateStorageNews1.setMaterialCode(wmsRawOrderInSn.getMaterialCode()); + wmsOdsMateStorageNews1.setMaterialDesc(wmsRawOrderInSn.getMaterialDesc()); + wmsOdsMateStorageNews1.setStorageType("BC"); + wmsOdsMateStorageNews1.setCreateBy(wmsRawOrderInSn.getCreateBy()); + wmsOdsMateStorageNews1.setGmtCreate(new Date()); + wmsOdsMateStorageNews1.setActiveFlag("1"); + wmsOdsMateStorageNews1.setFactoryCode(wmsRawOrderInSn.getFactoryCode()); + wmsOdsMateStorageNews1.setSapFactoryCode(wmsRawOrderInSn.getSapFactoryCode()); + wmsOdsMateStorageNews1.setUserDefined1(wmsRawOrderInSn.getUserDefined4());//单位 + wmsOdsMateStorageNewsMapper.insertWmsOdsMateStorageNews(wmsOdsMateStorageNews1); + } else { + wmsOdsMateStorageNewsSnMapper.updateAdd(wmsOdsEmStorageNews); + } + wmsRawOrderInSnMapper.updateU1Byid(wmsRawOrderInSn);//入库 + } + }else {////失败| + result="暂收失败"; + order.setSapTempInfor(result2.getMsg()); + order.setSapTempStatus("0");//0是失败。1是成功 + odsProcureOrderMapper.updateOdsProcureOrder(order); + return result; + } return result; } diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOrderMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOrderMapper.xml index 6a6f837b..94a5bb43 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOrderMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOrderMapper.xml @@ -188,6 +188,10 @@ Last_Update_By = #{lastUpdateBy}, Last_Update_Date = #{lastUpdateDate}, Active = #{Active}, + Sap_Temp_Infor = #{SapTempInfor}, + Sap_Temp_Status = #{SapTempStatus}, + SAP_status = #{SAPstatus}, + SAP_message = #{SAPmessage}, Enterprise_Id = #{enterpriseId}, Enterprise_Code = #{enterpriseCode}, diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsMateStorageNewsMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsMateStorageNewsMapper.xml index 2f8a79dd..1476172d 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsMateStorageNewsMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsMateStorageNewsMapper.xml @@ -213,7 +213,7 @@ SELECT wh_code, + wl_code, + wa_code, po_no, material_code, material_desc, - sum ( amount ) AS amount, - user_defined2, - user_defined3 + sn, + amount AS amount FROM wms_raw_order_in_sn WHERE - user_defined5 = #{receiptNoCode} - AND active_flag='1' - GROUP BY + user_defined3 = #{ID} + AND user_defined1 = '1' + AND active_flag = '1' + + insert into wms_logotype_table(