From f1138765084697a1801e3351e0574fe75228d65b Mon Sep 17 00:00:00 2001 From: mengjiao <3338049200@qq,com> Date: Mon, 17 Mar 2025 09:39:38 +0800 Subject: [PATCH] =?UTF-8?q?ObtainSapInventory=E5=AE=9A=E6=97=B6=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/api/domain/sap/SapZmesGetMchb.java | 288 ++++++++++++++++- .../op/sap/mapper/SapBaseProductMapper.java | 7 + .../op/sap/service/impl/SapItemSyncImpl.java | 55 +++- .../mapper/sap/SapBaseProductMapper.xml | 72 ++++- .../WmsOdsMateStorageNewsSnController.java | 8 + .../op/wms/domain/SapOdsMateStorageNews.java | 299 ++++++++++++++++++ .../IWmsOdsMateStorageNewsSnService.java | 3 + .../WmsOdsMateStorageNewsSnServiceImpl.java | 6 + 8 files changed, 734 insertions(+), 4 deletions(-) create mode 100644 op-modules/op-wms/src/main/java/com/op/wms/domain/SapOdsMateStorageNews.java diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapZmesGetMchb.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapZmesGetMchb.java index 062592a46..d54df188a 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapZmesGetMchb.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapZmesGetMchb.java @@ -1,6 +1,12 @@ package com.op.system.api.domain.sap; -public class SapZmesGetMchb { +import com.op.common.core.web.domain.BaseEntity; + +import java.math.BigDecimal; +import java.util.Date; + +public class SapZmesGetMchb extends BaseEntity { + private static final long serialVersionUID = 1L; private String S_MATNR;//工厂 private String S_WERKS;//工厂描述 private String S_LGORT;//工作中心 @@ -47,4 +53,284 @@ public class SapZmesGetMchb { ", S_CHARG='" + S_CHARG + '\'' + '}'; } + /** + * 单据类型 + */ + private String storageId; + + // 物料号 + private String matnr; + + // 工厂信息 + private String werks; // 工厂 + + // 库存地点 + private String lgort; // 库存地点 + + // 批号 + private String charg; // 批号 + + // 物料描述 + private String maktx; // 物料描述 + + // 物料组 + private String matkl; // 物料组 + + // 基本计量单位 + private String meins; // 基本计量单位 + + // 非限制库存 + private BigDecimal clabs; // 非限制库存 + + // 质检库存 + private BigDecimal cinsm; // 质检库存 + + // 限制库存 + private BigDecimal ceinm; // 限制库存 + + // 冻结库存 + private BigDecimal cspem; // 冻结库存 + + // 备用字段,通常用于用户自定义扩展 + private String userDefined1; // 备用字段 1 + private String userDefined2; // 备用字段 2 + private String userDefined3; // 备用字段 3 + private String userDefined4; // 备用字段 4 + private String userDefined5; // 备用字段 5 + private String userDefined6; // 备用字段 6 + + // 创建者 + private String createBy; + + // 创建时间 + private Date gmtCreate; + + // 最后修改者 + private String lastModified_by; + + // 最后修改时间 + private Date gmtModified; + + // 活动标志,表示该记录是否有效 + private String activeFlag; + + // 工厂代码 + private String factoryCode; + + // SAP 工厂代码 + private String sapFactoryCode; + + // 删除标志,表示该记录是否已被标记为删除 + private String delFlag; + + public String getStorageId() { + return storageId; + } + + public BigDecimal getCspem() { + return cspem; + } + + public void setCspem(BigDecimal cspem) { + this.cspem = cspem; + } + + public void setStorageId(String storageId) { + this.storageId = storageId; + } + + public String getMatnr() { + return matnr; + } + + public void setMatnr(String matnr) { + this.matnr = matnr; + } + + public String getWerks() { + return werks; + } + + public void setWerks(String werks) { + this.werks = werks; + } + + public String getLgort() { + return lgort; + } + + public void setLgort(String lgort) { + this.lgort = lgort; + } + + public String getCharg() { + return charg; + } + + public void setCharg(String charg) { + this.charg = charg; + } + + public String getMaktx() { + return maktx; + } + + public void setMaktx(String maktx) { + this.maktx = maktx; + } + + public String getMatkl() { + return matkl; + } + + public void setMatkl(String matkl) { + this.matkl = matkl; + } + + public String getMeins() { + return meins; + } + + public void setMeins(String meins) { + this.meins = meins; + } + + public BigDecimal getClabs() { + return clabs; + } + + public void setClabs(BigDecimal clabs) { + this.clabs = clabs; + } + + public BigDecimal getCinsm() { + return cinsm; + } + + public void setCinsm(BigDecimal cinsm) { + this.cinsm = cinsm; + } + + public BigDecimal getCeinm() { + return ceinm; + } + + public void setCeinm(BigDecimal ceinm) { + this.ceinm = ceinm; + } + + + public String getUserDefined1() { + return userDefined1; + } + + public void setUserDefined1(String userDefined1) { + this.userDefined1 = userDefined1; + } + + public String getUserDefined2() { + return userDefined2; + } + + public void setUserDefined2(String userDefined2) { + this.userDefined2 = userDefined2; + } + + public String getUserDefined3() { + return userDefined3; + } + + public void setUserDefined3(String userDefined3) { + this.userDefined3 = userDefined3; + } + + public String getUserDefined4() { + return userDefined4; + } + + public void setUserDefined4(String userDefined4) { + this.userDefined4 = userDefined4; + } + + public String getUserDefined5() { + return userDefined5; + } + + public void setUserDefined5(String userDefined5) { + this.userDefined5 = userDefined5; + } + + public String getUserDefined6() { + return userDefined6; + } + + public void setUserDefined6(String userDefined6) { + this.userDefined6 = userDefined6; + } + + @Override + public String getCreateBy() { + return createBy; + } + + @Override + public void setCreateBy(String createBy) { + this.createBy = createBy; + } + + public Date getGmtCreate() { + return gmtCreate; + } + + public void setGmtCreate(Date gmtCreate) { + this.gmtCreate = gmtCreate; + } + + public String getLastModified_by() { + return lastModified_by; + } + + public void setLastModified_by(String lastModified_by) { + this.lastModified_by = lastModified_by; + } + + public Date getGmtModified() { + return gmtModified; + } + + public void setGmtModified(Date gmtModified) { + this.gmtModified = gmtModified; + } + + public String getActiveFlag() { + return activeFlag; + } + + public void setActiveFlag(String activeFlag) { + this.activeFlag = activeFlag; + } + + public String getFactoryCode() { + return factoryCode; + } + + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getSapFactoryCode() { + return sapFactoryCode; + } + + public void setSapFactoryCode(String sapFactoryCode) { + this.sapFactoryCode = sapFactoryCode; + } + + public String getDelFlag() { + return delFlag; + } + + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/mapper/SapBaseProductMapper.java b/op-modules/op-sap/src/main/java/com/op/sap/mapper/SapBaseProductMapper.java index fd2e4e579..5e164d7e1 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/mapper/SapBaseProductMapper.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/mapper/SapBaseProductMapper.java @@ -2,6 +2,7 @@ package com.op.sap.mapper; import com.op.system.api.domain.sap.SapBaseProduct; +import com.op.system.api.domain.sap.SapZmesGetMchb; import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -63,4 +64,10 @@ public interface SapBaseProductMapper { public int deleteBaseProductByProductIds(String[] productIds); public SapBaseProduct selectBaseProductByProductCode(SapBaseProduct sapBaseProduct); + + SapZmesGetMchb selectSapZmesGetMchb(SapZmesGetMchb sapZmesGetMchb2); + + void UpdateSapZmesGetMchb(SapZmesGetMchb sapZmesGetMchb1); + + void insertSapZmesGetMchb(SapZmesGetMchb sapZmesGetMchb1); } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java index 07511a804..46da5bed8 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java @@ -1271,6 +1271,8 @@ public class SapItemSyncImpl implements SapItemSyncService { func.execute(dest);//执行调用函数 JCoTable maraTable = func.getTableParameterList().getTable("LT_MCHB"); List> mapResult=new ArrayList<>(); + List sapZmesGetMchbs=new ArrayList<>(); + DynamicDataSourceContextHolder.push("ds_"+sapZmesGetMchb.getS_WERKS()); for (int i = 0; i < maraTable.getNumRows(); i++) { maraTable.setRow(i); Map map=new HashMap(); @@ -1300,8 +1302,59 @@ public class SapItemSyncImpl implements SapItemSyncService { map.put("CEINM",CEINM); map.put("CSPEM",CSPEM); mapResult.add(map); + SapZmesGetMchb sapZmesGetMchb1= new SapZmesGetMchb(); + sapZmesGetMchb1.setMatnr(MATNR); + sapZmesGetMchb1.setMaktx(MAKTX); + sapZmesGetMchb1.setWerks(WERKS); + sapZmesGetMchb1.setLgort(LGORT); + sapZmesGetMchb1.setCharg(CHARG); + sapZmesGetMchb1.setMatkl(MATKL); + sapZmesGetMchb1.setClabs(new BigDecimal(CLABS)); + sapZmesGetMchb1.setCinsm(new BigDecimal(CINSM)); + sapZmesGetMchb1.setMeins(MEINS); + sapZmesGetMchb1.setCeinm(new BigDecimal(CEINM)); + sapZmesGetMchb1.setCspem(new BigDecimal(CSPEM)); + // sapZmesGetMchb1.setCreateBy("task"); + // sapZmesGetMchb1.setGmtCreate(new Date()); + sapZmesGetMchbs.add(sapZmesGetMchb1); + log.info("物料号:"+MATNR+"工厂:"+WERKS+"库存地点:"+LGORT+"批号:"+CHARG+"物料描述:"+MAKTX+"物料组:"+MATKL+ + "基本计量单位:"+MEINS+"非限制库存:"+CLABS+"质检库存:"+CINSM+"限制库存:"+CEINM+"冻结库存:"+CSPEM); + } + for (SapZmesGetMchb sapZmesGetMchb1: + sapZmesGetMchbs) { + SapZmesGetMchb sapZmesGetMchb2=new SapZmesGetMchb();// + sapZmesGetMchb2.setMatnr(sapZmesGetMchb1.getMatnr()); + sapZmesGetMchb2.setWerks(sapZmesGetMchb1.getWerks()); + sapZmesGetMchb2.setLgort(sapZmesGetMchb1.getLgort()); + sapZmesGetMchb2.setCharg(sapZmesGetMchb1.getCharg()); + sapZmesGetMchb2.setMaktx(sapZmesGetMchb1.getMaktx()); + sapZmesGetMchb2.setMatkl(sapZmesGetMchb1.getMatkl()); + sapZmesGetMchb2.setMeins(sapZmesGetMchb1.getMeins()); + SapZmesGetMchb sapZmesGetMchb3= sapBaseProductMapper.selectSapZmesGetMchb(sapZmesGetMchb2); + if (sapZmesGetMchb3!=null){//修改 + sapZmesGetMchb1.setClabs(sapZmesGetMchb1.getClabs()); + sapZmesGetMchb1.setCinsm(sapZmesGetMchb1.getCinsm()); + sapZmesGetMchb1.setMeins(sapZmesGetMchb1.getMeins()); + sapZmesGetMchb1.setCeinm(sapZmesGetMchb1.getCeinm()); + sapZmesGetMchb1.setCspem(sapZmesGetMchb1.getCspem()); + sapZmesGetMchb1.setCreateBy("task"); + sapZmesGetMchb1.setGmtCreate(new Date()); + sapBaseProductMapper.UpdateSapZmesGetMchb(sapZmesGetMchb1); + }else {//添加 + sapZmesGetMchb1.setStorageId(IdUtils.fastSimpleUUID()); + sapZmesGetMchb1.setClabs(sapZmesGetMchb1.getClabs()); + sapZmesGetMchb1.setCinsm(sapZmesGetMchb1.getCinsm()); + sapZmesGetMchb1.setMeins(sapZmesGetMchb1.getMeins()); + sapZmesGetMchb1.setCeinm(sapZmesGetMchb1.getCeinm()); + sapZmesGetMchb1.setCspem(sapZmesGetMchb1.getCspem()); + sapZmesGetMchb1.setCreateBy("task"); + sapZmesGetMchb1.setActiveFlag("1"); + sapZmesGetMchb1.setGmtCreate(new Date()); + sapZmesGetMchb1.setFactoryCode(sapZmesGetMchb1.getWerks()); + sapZmesGetMchb1.setSapFactoryCode(sapZmesGetMchb1.getWerks()); + sapBaseProductMapper.insertSapZmesGetMchb(sapZmesGetMchb1); + } } - return R.ok(); } catch (Exception e) { log.error(e.getMessage()); diff --git a/op-modules/op-sap/src/main/resources/mapper/sap/SapBaseProductMapper.xml b/op-modules/op-sap/src/main/resources/mapper/sap/SapBaseProductMapper.xml index 5edc727fb..6606f673f 100644 --- a/op-modules/op-sap/src/main/resources/mapper/sap/SapBaseProductMapper.xml +++ b/op-modules/op-sap/src/main/resources/mapper/sap/SapBaseProductMapper.xml @@ -272,6 +272,74 @@ #{productId} - - + + + update sap_ods_mate_storage_news + set CLABS = #{clabs}, + CINSM=#{cinsm}, + CEINM=#{ceinm}, + CSPEM=#{cspem}, + last_modified_by=#{createBy}, + gmt_modified=getdate() + where storage_id=#{storageId} + + + insert into sap_ods_mate_storage_news + + storage_id, + MATNR, + WERKS, + LGORT, + CHARG, + MAKTX, + MATKL, + MEINS, + CLABS, + CINSM, + CEINM, + CSPEM, + create_by, + gmt_create, + active_flag, + factory_code, + sap_factory_code, + + + #{storageId}, + #{matnr}, + #{werks}, + #{lgort}, + #{charg}, + #{maktx}, + #{matkl}, + #{meins}, + #{clabs}, + #{cinsm}, + #{ceinm}, + #{cspem}, + #{createBy}, + #{gmtCreate}, + #{activeFlag}, + #{factoryCode}, + #{sapFactoryCode}, + + diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsOdsMateStorageNewsSnController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsOdsMateStorageNewsSnController.java index 8e7b4b788..b221f02b2 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsOdsMateStorageNewsSnController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsOdsMateStorageNewsSnController.java @@ -4,6 +4,7 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; import com.op.wms.domain.OdsProcureOutOrder; +import com.op.wms.domain.SapOdsMateStorageNews; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -118,4 +119,11 @@ public class WmsOdsMateStorageNewsSnController extends BaseController { String result = wmsOdsMateStorageNewsSnService.Removecard(orderList); return success(result); } + + @GetMapping("/saplist") + public TableDataInfo saplist(SapOdsMateStorageNews sapOdsMateStorageNews) { + startPage(); + List list = wmsOdsMateStorageNewsSnService.selectSapOdsMateStorageNewsList(sapOdsMateStorageNews); + return getDataTable(list); + } } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/domain/SapOdsMateStorageNews.java b/op-modules/op-wms/src/main/java/com/op/wms/domain/SapOdsMateStorageNews.java new file mode 100644 index 000000000..26bf5bbf9 --- /dev/null +++ b/op-modules/op-wms/src/main/java/com/op/wms/domain/SapOdsMateStorageNews.java @@ -0,0 +1,299 @@ +package com.op.wms.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 包材库存明细表对象 wms_ods_mate_storage_news_sn + *S + * @author Open Platform + * @date 2023-08-30 + */ +public class SapOdsMateStorageNews extends BaseEntity { + private static final long serialVersionUID = 1L; + /** + * 单据类型 + */ + private String storageId; + + // 物料号 + private String matnr; + + // 工厂信息 + private String werks; // 工厂 + + // 库存地点 + private String lgort; // 库存地点 + + // 批号 + private String charg; // 批号 + + // 物料描述 + private String maktx; // 物料描述 + + // 物料组 + private String matkl; // 物料组 + + // 基本计量单位 + private String meins; // 基本计量单位 + + // 非限制库存 + private String clabs; // 非限制库存 + + // 质检库存 + private String cinsm; // 质检库存 + + // 限制库存 + private String ceinm; // 限制库存 + + // 冻结库存 + private String cspe; // 冻结库存 + + // 备用字段,通常用于用户自定义扩展 + private String userDefined1; // 备用字段 1 + private String userDefined2; // 备用字段 2 + private String userDefined3; // 备用字段 3 + private String userDefined4; // 备用字段 4 + private String userDefined5; // 备用字段 5 + private String userDefined6; // 备用字段 6 + + // 创建者 + private String createBy; + + // 创建时间 + private Date gmtCreate; + + // 最后修改者 + private String lastModified_by; + + // 最后修改时间 + private Date gmtModified; + + // 活动标志,表示该记录是否有效 + private String activeFlag; + + // 工厂代码 + private String factoryCode; + + // SAP 工厂代码 + private String sapFactoryCode; + + // 删除标志,表示该记录是否已被标记为删除 + private String delFlag; + + public String getStorageId() { + return storageId; + } + + public void setStorageId(String storageId) { + this.storageId = storageId; + } + + public String getMatnr() { + return matnr; + } + + public void setMatnr(String matnr) { + this.matnr = matnr; + } + + public String getWerks() { + return werks; + } + + public void setWerks(String werks) { + this.werks = werks; + } + + public String getLgort() { + return lgort; + } + + public void setLgort(String lgort) { + this.lgort = lgort; + } + + public String getCharg() { + return charg; + } + + public void setCharg(String charg) { + this.charg = charg; + } + + public String getMaktx() { + return maktx; + } + + public void setMaktx(String maktx) { + this.maktx = maktx; + } + + public String getMatkl() { + return matkl; + } + + public void setMatkl(String matkl) { + this.matkl = matkl; + } + + public String getMeins() { + return meins; + } + + public void setMeins(String meins) { + this.meins = meins; + } + + public String getClabs() { + return clabs; + } + + public void setClabs(String clabs) { + this.clabs = clabs; + } + + public String getCinsm() { + return cinsm; + } + + public void setCinsm(String cinsm) { + this.cinsm = cinsm; + } + + public String getCeinm() { + return ceinm; + } + + public void setCeinm(String ceinm) { + this.ceinm = ceinm; + } + + public String getCspe() { + return cspe; + } + + public void setCspe(String cspe) { + this.cspe = cspe; + } + + public String getUserDefined1() { + return userDefined1; + } + + public void setUserDefined1(String userDefined1) { + this.userDefined1 = userDefined1; + } + + public String getUserDefined2() { + return userDefined2; + } + + public void setUserDefined2(String userDefined2) { + this.userDefined2 = userDefined2; + } + + public String getUserDefined3() { + return userDefined3; + } + + public void setUserDefined3(String userDefined3) { + this.userDefined3 = userDefined3; + } + + public String getUserDefined4() { + return userDefined4; + } + + public void setUserDefined4(String userDefined4) { + this.userDefined4 = userDefined4; + } + + public String getUserDefined5() { + return userDefined5; + } + + public void setUserDefined5(String userDefined5) { + this.userDefined5 = userDefined5; + } + + public String getUserDefined6() { + return userDefined6; + } + + public void setUserDefined6(String userDefined6) { + this.userDefined6 = userDefined6; + } + + @Override + public String getCreateBy() { + return createBy; + } + + @Override + public void setCreateBy(String createBy) { + this.createBy = createBy; + } + + public Date getGmtCreate() { + return gmtCreate; + } + + public void setGmtCreate(Date gmtCreate) { + this.gmtCreate = gmtCreate; + } + + public String getLastModified_by() { + return lastModified_by; + } + + public void setLastModified_by(String lastModified_by) { + this.lastModified_by = lastModified_by; + } + + public Date getGmtModified() { + return gmtModified; + } + + public void setGmtModified(Date gmtModified) { + this.gmtModified = gmtModified; + } + + public String getActiveFlag() { + return activeFlag; + } + + public void setActiveFlag(String activeFlag) { + this.activeFlag = activeFlag; + } + + public String getFactoryCode() { + return factoryCode; + } + + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getSapFactoryCode() { + return sapFactoryCode; + } + + public void setSapFactoryCode(String sapFactoryCode) { + this.sapFactoryCode = sapFactoryCode; + } + + public String getDelFlag() { + return delFlag; + } + + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } +} diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsOdsMateStorageNewsSnService.java b/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsOdsMateStorageNewsSnService.java index 4d57da7d0..1fcdcc5bf 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsOdsMateStorageNewsSnService.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsOdsMateStorageNewsSnService.java @@ -3,6 +3,7 @@ package com.op.wms.service; import java.util.List; import com.op.wms.domain.OdsProcureOutOrder; +import com.op.wms.domain.SapOdsMateStorageNews; import com.op.wms.domain.WmsOdsMateStorageNewsSn; /** @@ -65,4 +66,6 @@ public interface IWmsOdsMateStorageNewsSnService { String cardBD(List orderList); String Removecard(List orderList); + + List selectSapOdsMateStorageNewsList(SapOdsMateStorageNews sapOdsMateStorageNews); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsOdsMateStorageNewsSnServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsOdsMateStorageNewsSnServiceImpl.java index b573102d3..de03019eb 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsOdsMateStorageNewsSnServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsOdsMateStorageNewsSnServiceImpl.java @@ -289,6 +289,12 @@ public class WmsOdsMateStorageNewsSnServiceImpl implements IWmsOdsMateStorageNew return msg; } + @Override + @DS("#header.poolName") + public List selectSapOdsMateStorageNewsList(SapOdsMateStorageNews sapOdsMateStorageNews) { + return null; + } + public String dayin( List orderList) { // 定义请求的URL地址 String url = dayinUrl1;