diff --git a/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesBaseMaterialInfo.java b/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesBaseMaterialInfo.java index f5a3914d..29087b39 100644 --- a/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesBaseMaterialInfo.java +++ b/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesBaseMaterialInfo.java @@ -1,5 +1,8 @@ package com.hw.mes.api.domain; +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.hw.common.core.annotation.Excel; @@ -9,7 +12,7 @@ import com.hw.common.core.web.domain.BaseEntity; * 物料信息对象 mes_base_material_info * * @author xins - * @date 2023-12-21 + * @date 2024-01-09 */ public class MesBaseMaterialInfo extends BaseEntity { @@ -18,12 +21,20 @@ public class MesBaseMaterialInfo extends BaseEntity /** 主键标识 */ private Long materialId; - /** 物料编码 */ - @Excel(name = "物料编码") + /** ERP的主键;对应FMATERIALID */ + @Excel(name = "ERP的主键;对应FMATERIALID") + private Long erpId; + + /** 物料编码;对应ERP的FNumber */ + @Excel(name = "物料编码;对应ERP的FNumber") private String materialCode; - /** 物料名称 */ - @Excel(name = "物料名称") + /** 旧物料编码 */ + @Excel(name = "旧物料编码") + private String oldMaterialCode; + + /** 物料名称;对应ERP的FName */ + @Excel(name = "物料名称;对应ERP的FName") private String materialName; /** 物料大类(1,原材料 2,半成品 3,成品) */ @@ -38,38 +49,68 @@ public class MesBaseMaterialInfo extends BaseEntity @Excel(name = "物料类型,关联mes_base_material_type的material_type_id") private Long materialTypeId; - /** 计量单位 */ - @Excel(name = "计量单位") + /** 批次标识,(0否,1是) */ + @Excel(name = "批次标识,(0否,1是)") + private String batchFlag; + + /** 计量单位ID;对应FBaseUnitId */ + @Excel(name = "计量单位ID;对应FBaseUnitId") + private Long materialUnitId; + + /** 计量单位名称 */ + @Excel(name = "计量单位名称") private String materialUnit; /** 物料组 */ @Excel(name = "物料组") private String materialMatkl; - /** 物料规格 */ - @Excel(name = "物料规格") + /** 物料规格;对应FSpecification */ + @Excel(name = "物料规格;对应FSpecification") private String materialSpec; + /** 净重;FNETWEIGHT */ + @Excel(name = "净重;FNETWEIGHT") + private BigDecimal netWeight; + + /** 毛重;FGROSSWEIGHT */ + @Excel(name = "毛重;FGROSSWEIGHT") + private BigDecimal grossWeight; + /** 所属工厂,关联mes_base_factory_info的factory_id */ @Excel(name = "所属工厂,关联mes_base_factory_info的factory_id") private Long factoryId; - /** 所属产线 */ - @Excel(name = "所属产线") + /** 创建组织;对应FCreateOrgId */ + @Excel(name = "创建组织;对应FCreateOrgId") + private Long createOrgId; + + /** 使用组织;对应FUseOrgId */ + @Excel(name = "使用组织;对应FUseOrgId") + private Long useOrgId; + + /** 所属产线;多个用,隔开 */ + @Excel(name = "所属产线;多个用,隔开") private String prodlineId; - /** 是否标识:1-是;0-否 */ - @Excel(name = "是否标识:1-是;0-否") - private Long isFlag; - - /** ERP的主键(内码) */ - @Excel(name = "ERP的主键(内码)") - private Long erpId; + /** 激活标识:1-是;0-否 */ + @Excel(name = "激活标识:1-是;0-否") + private String activeFlag; /** 删除标识(0否,1是) */ @Excel(name = "删除标识(0否,1是)") private String deletedFlag; + /** 审核日期;对应FApproveDate */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "审核日期;对应FApproveDate", width = 30, dateFormat = "yyyy-MM-dd") + private Date approveDate; + + /** erp最后更新日期;对应FModifyDate */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "erp最后更新日期;对应FModifyDate", width = 30, dateFormat = "yyyy-MM-dd") + private Date erpModifyDate; + public void setMaterialId(Long materialId) { this.materialId = materialId; @@ -79,6 +120,15 @@ public class MesBaseMaterialInfo extends BaseEntity { return materialId; } + public void setErpId(Long erpId) + { + this.erpId = erpId; + } + + public Long getErpId() + { + return erpId; + } public void setMaterialCode(String materialCode) { this.materialCode = materialCode; @@ -88,6 +138,15 @@ public class MesBaseMaterialInfo extends BaseEntity { return materialCode; } + public void setOldMaterialCode(String oldMaterialCode) + { + this.oldMaterialCode = oldMaterialCode; + } + + public String getOldMaterialCode() + { + return oldMaterialCode; + } public void setMaterialName(String materialName) { this.materialName = materialName; @@ -124,6 +183,24 @@ public class MesBaseMaterialInfo extends BaseEntity { return materialTypeId; } + public void setBatchFlag(String batchFlag) + { + this.batchFlag = batchFlag; + } + + public String getBatchFlag() + { + return batchFlag; + } + public void setMaterialUnitId(Long materialUnitId) + { + this.materialUnitId = materialUnitId; + } + + public Long getMaterialUnitId() + { + return materialUnitId; + } public void setMaterialUnit(String materialUnit) { this.materialUnit = materialUnit; @@ -151,6 +228,24 @@ public class MesBaseMaterialInfo extends BaseEntity { return materialSpec; } + public void setNetWeight(BigDecimal netWeight) + { + this.netWeight = netWeight; + } + + public BigDecimal getNetWeight() + { + return netWeight; + } + public void setGrossWeight(BigDecimal grossWeight) + { + this.grossWeight = grossWeight; + } + + public BigDecimal getGrossWeight() + { + return grossWeight; + } public void setFactoryId(Long factoryId) { this.factoryId = factoryId; @@ -160,6 +255,24 @@ public class MesBaseMaterialInfo extends BaseEntity { return factoryId; } + public void setCreateOrgId(Long createOrgId) + { + this.createOrgId = createOrgId; + } + + public Long getCreateOrgId() + { + return createOrgId; + } + public void setUseOrgId(Long useOrgId) + { + this.useOrgId = useOrgId; + } + + public Long getUseOrgId() + { + return useOrgId; + } public void setProdlineId(String prodlineId) { this.prodlineId = prodlineId; @@ -169,23 +282,14 @@ public class MesBaseMaterialInfo extends BaseEntity { return prodlineId; } - public void setIsFlag(Long isFlag) + public void setActiveFlag(String activeFlag) { - this.isFlag = isFlag; + this.activeFlag = activeFlag; } - public Long getIsFlag() + public String getActiveFlag() { - return isFlag; - } - public void setErpId(Long erpId) - { - this.erpId = erpId; - } - - public Long getErpId() - { - return erpId; + return activeFlag; } public void setDeletedFlag(String deletedFlag) { @@ -196,29 +300,56 @@ public class MesBaseMaterialInfo extends BaseEntity { return deletedFlag; } + public void setApproveDate(Date approveDate) + { + this.approveDate = approveDate; + } + + public Date getApproveDate() + { + return approveDate; + } + public void setErpModifyDate(Date erpModifyDate) + { + this.erpModifyDate = erpModifyDate; + } + + public Date getErpModifyDate() + { + return erpModifyDate; + } @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("materialId", getMaterialId()) - .append("materialCode", getMaterialCode()) - .append("materialName", getMaterialName()) - .append("materialCategories", getMaterialCategories()) - .append("materialSubclass", getMaterialSubclass()) - .append("materialTypeId", getMaterialTypeId()) - .append("materialUnit", getMaterialUnit()) - .append("materialMatkl", getMaterialMatkl()) - .append("materialSpec", getMaterialSpec()) - .append("factoryId", getFactoryId()) - .append("prodlineId", getProdlineId()) - .append("isFlag", getIsFlag()) - .append("erpId", getErpId()) - .append("deletedFlag", getDeletedFlag()) - .append("remark", getRemark()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .toString(); + .append("materialId", getMaterialId()) + .append("erpId", getErpId()) + .append("materialCode", getMaterialCode()) + .append("oldMaterialCode", getOldMaterialCode()) + .append("materialName", getMaterialName()) + .append("materialCategories", getMaterialCategories()) + .append("materialSubclass", getMaterialSubclass()) + .append("materialTypeId", getMaterialTypeId()) + .append("batchFlag", getBatchFlag()) + .append("materialUnitId", getMaterialUnitId()) + .append("materialUnit", getMaterialUnit()) + .append("materialMatkl", getMaterialMatkl()) + .append("materialSpec", getMaterialSpec()) + .append("netWeight", getNetWeight()) + .append("grossWeight", getGrossWeight()) + .append("factoryId", getFactoryId()) + .append("createOrgId", getCreateOrgId()) + .append("useOrgId", getUseOrgId()) + .append("prodlineId", getProdlineId()) + .append("activeFlag", getActiveFlag()) + .append("deletedFlag", getDeletedFlag()) + .append("remark", getRemark()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("approveDate", getApproveDate()) + .append("erpModifyDate", getErpModifyDate()) + .toString(); } } diff --git a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/WmsConstants.java b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/WmsConstants.java index 36b4be91..3b54f557 100644 --- a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/WmsConstants.java +++ b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/WmsConstants.java @@ -173,4 +173,6 @@ public class WmsConstants { /*原材料库存完整标识*/ public static final String WMS_RAW_STOCK_COMPLETE_FLAG_YES = "1";//是 public static final String WMS_RAW_STOCK_COMPLETE_FLAG_NO = "0";//否 + + public static final String WMS_WAREHOUSE_MATERIAL_STORAGE_TYPE_MATERIAL = "1"; } diff --git a/hw-modules/hw-jindie/pom.xml b/hw-modules/hw-jindie/pom.xml index 2fcb0624..745e1156 100644 --- a/hw-modules/hw-jindie/pom.xml +++ b/hw-modules/hw-jindie/pom.xml @@ -92,7 +92,6 @@ gson - diff --git a/hw-modules/hw-jindie/src/main/java/com/hw/jindie/controller/KingdeeErpSyncController.java b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/controller/KingdeeErpSyncController.java new file mode 100644 index 00000000..b40e7dbb --- /dev/null +++ b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/controller/KingdeeErpSyncController.java @@ -0,0 +1,39 @@ +package com.hw.jindie.controller; + +import com.hw.common.core.web.domain.AjaxResult; +import com.hw.common.log.annotation.Log; +import com.hw.common.log.enums.BusinessType; +import com.hw.jindie.service.IKingdeeErpSyncService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +/** + * @Description: + * @ProjectName:HwMes + * @Author:xins + * @Date:2024-01-11 17:26 + * @Version:1.0 + */ +@RestController +@RequestMapping("/jindie") +public class KingdeeErpSyncController { + @Autowired + private IKingdeeErpSyncService kingdeeErpSyncService; + + /** + * 新增原材料入库记录 + */ +// @RequiresPermissions("wms:mobile:addrawinstock") + @Log(title = "物料信息", businessType = BusinessType.INSERT) + @GetMapping(("/syncMaterialInfo")) + public AjaxResult syncMaterialInfo() { + try{ + return AjaxResult.success(kingdeeErpSyncService.syncMaterialInfoFromErp()); + }catch(Exception e){ + e.printStackTrace(); + return AjaxResult.error(); + } + + } +} diff --git a/hw-modules/hw-jindie/src/main/java/com/hw/jindie/domain/MesBaseMaterialInfo.java b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/domain/MesBaseMaterialInfo.java new file mode 100644 index 00000000..602197b4 --- /dev/null +++ b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/domain/MesBaseMaterialInfo.java @@ -0,0 +1,355 @@ +package com.hw.jindie.domain; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.hw.common.core.annotation.Excel; +import com.hw.common.core.web.domain.BaseEntity; + +/** + * 物料信息对象 mes_base_material_info + * + * @author xins + * @date 2024-01-09 + */ +public class MesBaseMaterialInfo extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键标识 */ + private Long materialId; + + /** ERP的主键;对应FMATERIALID */ + @Excel(name = "ERP的主键;对应FMATERIALID") + private Long erpId; + + /** 物料编码;对应ERP的FNumber */ + @Excel(name = "物料编码;对应ERP的FNumber") + private String materialCode; + + /** 旧物料编码 */ + @Excel(name = "旧物料编码") + private String oldMaterialCode; + + /** 物料名称;对应ERP的FName */ + @Excel(name = "物料名称;对应ERP的FName") + private String materialName; + + /** 物料大类(1,原材料 2,半成品 3,成品) */ + @Excel(name = "物料大类(1,原材料 2,半成品 3,成品)") + private String materialCategories; + + /** 物料小类;暂时不使用,预留 */ + @Excel(name = "物料小类;暂时不使用,预留") + private String materialSubclass; + + /** 物料类型,关联mes_base_material_type的material_type_id */ + @Excel(name = "物料类型,关联mes_base_material_type的material_type_id") + private Long materialTypeId; + + /** 批次标识,(0否,1是) */ + @Excel(name = "批次标识,(0否,1是)") + private String batchFlag; + + /** 计量单位ID;对应FBaseUnitId */ + @Excel(name = "计量单位ID;对应FBaseUnitId") + private Long materialUnitId; + + /** 计量单位名称 */ + @Excel(name = "计量单位名称") + private String materialUnit; + + /** 物料组 */ + @Excel(name = "物料组") + private String materialMatkl; + + /** 物料规格;对应FSpecification */ + @Excel(name = "物料规格;对应FSpecification") + private String materialSpec; + + /** 净重;FNETWEIGHT */ + @Excel(name = "净重;FNETWEIGHT") + private BigDecimal netWeight; + + /** 毛重;FGROSSWEIGHT */ + @Excel(name = "毛重;FGROSSWEIGHT") + private BigDecimal grossWeight; + + /** 所属工厂,关联mes_base_factory_info的factory_id */ + @Excel(name = "所属工厂,关联mes_base_factory_info的factory_id") + private Long factoryId; + + /** 创建组织;对应FCreateOrgId */ + @Excel(name = "创建组织;对应FCreateOrgId") + private Long createOrgId; + + /** 使用组织;对应FUseOrgId */ + @Excel(name = "使用组织;对应FUseOrgId") + private Long useOrgId; + + /** 所属产线;多个用,隔开 */ + @Excel(name = "所属产线;多个用,隔开") + private String prodlineId; + + /** 激活标识:1-是;0-否 */ + @Excel(name = "激活标识:1-是;0-否") + private String activeFlag; + + /** 删除标识(0否,1是) */ + @Excel(name = "删除标识(0否,1是)") + private String deletedFlag; + + /** 审核日期;对应FApproveDate */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "审核日期;对应FApproveDate", width = 30, dateFormat = "yyyy-MM-dd") + private Date approveDate; + + /** erp最后更新日期;对应FModifyDate */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "erp最后更新日期;对应FModifyDate", width = 30, dateFormat = "yyyy-MM-dd") + private Date erpModifyDate; + + public void setMaterialId(Long materialId) + { + this.materialId = materialId; + } + + public Long getMaterialId() + { + return materialId; + } + public void setErpId(Long erpId) + { + this.erpId = erpId; + } + + public Long getErpId() + { + return erpId; + } + public void setMaterialCode(String materialCode) + { + this.materialCode = materialCode; + } + + public String getMaterialCode() + { + return materialCode; + } + public void setOldMaterialCode(String oldMaterialCode) + { + this.oldMaterialCode = oldMaterialCode; + } + + public String getOldMaterialCode() + { + return oldMaterialCode; + } + public void setMaterialName(String materialName) + { + this.materialName = materialName; + } + + public String getMaterialName() + { + return materialName; + } + public void setMaterialCategories(String materialCategories) + { + this.materialCategories = materialCategories; + } + + public String getMaterialCategories() + { + return materialCategories; + } + public void setMaterialSubclass(String materialSubclass) + { + this.materialSubclass = materialSubclass; + } + + public String getMaterialSubclass() + { + return materialSubclass; + } + public void setMaterialTypeId(Long materialTypeId) + { + this.materialTypeId = materialTypeId; + } + + public Long getMaterialTypeId() + { + return materialTypeId; + } + public void setBatchFlag(String batchFlag) + { + this.batchFlag = batchFlag; + } + + public String getBatchFlag() + { + return batchFlag; + } + public void setMaterialUnitId(Long materialUnitId) + { + this.materialUnitId = materialUnitId; + } + + public Long getMaterialUnitId() + { + return materialUnitId; + } + public void setMaterialUnit(String materialUnit) + { + this.materialUnit = materialUnit; + } + + public String getMaterialUnit() + { + return materialUnit; + } + public void setMaterialMatkl(String materialMatkl) + { + this.materialMatkl = materialMatkl; + } + + public String getMaterialMatkl() + { + return materialMatkl; + } + public void setMaterialSpec(String materialSpec) + { + this.materialSpec = materialSpec; + } + + public String getMaterialSpec() + { + return materialSpec; + } + public void setNetWeight(BigDecimal netWeight) + { + this.netWeight = netWeight; + } + + public BigDecimal getNetWeight() + { + return netWeight; + } + public void setGrossWeight(BigDecimal grossWeight) + { + this.grossWeight = grossWeight; + } + + public BigDecimal getGrossWeight() + { + return grossWeight; + } + public void setFactoryId(Long factoryId) + { + this.factoryId = factoryId; + } + + public Long getFactoryId() + { + return factoryId; + } + public void setCreateOrgId(Long createOrgId) + { + this.createOrgId = createOrgId; + } + + public Long getCreateOrgId() + { + return createOrgId; + } + public void setUseOrgId(Long useOrgId) + { + this.useOrgId = useOrgId; + } + + public Long getUseOrgId() + { + return useOrgId; + } + public void setProdlineId(String prodlineId) + { + this.prodlineId = prodlineId; + } + + public String getProdlineId() + { + return prodlineId; + } + public void setActiveFlag(String activeFlag) + { + this.activeFlag = activeFlag; + } + + public String getActiveFlag() + { + return activeFlag; + } + public void setDeletedFlag(String deletedFlag) + { + this.deletedFlag = deletedFlag; + } + + public String getDeletedFlag() + { + return deletedFlag; + } + public void setApproveDate(Date approveDate) + { + this.approveDate = approveDate; + } + + public Date getApproveDate() + { + return approveDate; + } + public void setErpModifyDate(Date erpModifyDate) + { + this.erpModifyDate = erpModifyDate; + } + + public Date getErpModifyDate() + { + return erpModifyDate; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("materialId", getMaterialId()) + .append("erpId", getErpId()) + .append("materialCode", getMaterialCode()) + .append("oldMaterialCode", getOldMaterialCode()) + .append("materialName", getMaterialName()) + .append("materialCategories", getMaterialCategories()) + .append("materialSubclass", getMaterialSubclass()) + .append("materialTypeId", getMaterialTypeId()) + .append("batchFlag", getBatchFlag()) + .append("materialUnitId", getMaterialUnitId()) + .append("materialUnit", getMaterialUnit()) + .append("materialMatkl", getMaterialMatkl()) + .append("materialSpec", getMaterialSpec()) + .append("netWeight", getNetWeight()) + .append("grossWeight", getGrossWeight()) + .append("factoryId", getFactoryId()) + .append("createOrgId", getCreateOrgId()) + .append("useOrgId", getUseOrgId()) + .append("prodlineId", getProdlineId()) + .append("activeFlag", getActiveFlag()) + .append("deletedFlag", getDeletedFlag()) + .append("remark", getRemark()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("approveDate", getApproveDate()) + .append("erpModifyDate", getErpModifyDate()) + .toString(); + } +} diff --git a/hw-modules/hw-jindie/src/main/java/com/hw/jindie/mapper/MesBaseMaterialInfoMapper.java b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/mapper/MesBaseMaterialInfoMapper.java new file mode 100644 index 00000000..fda2bef1 --- /dev/null +++ b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/mapper/MesBaseMaterialInfoMapper.java @@ -0,0 +1,75 @@ +package com.hw.jindie.mapper; + + +import com.hw.jindie.domain.MesBaseMaterialInfo; + +import java.util.List; + +/** + * 物料信息Mapper接口 + * + * @author xins + * @date 2023-12-21 + */ +public interface MesBaseMaterialInfoMapper +{ + /** + * 查询物料信息 + * + * @param materialId 物料信息主键 + * @return 物料信息 + */ + public MesBaseMaterialInfo selectMesBaseMaterialInfoByMaterialId(Long materialId); + + /** + * 查询物料信息列表 + * + * @param mesBaseMaterialInfo 物料信息 + * @return 物料信息集合 + */ + public List selectMesBaseMaterialInfoList(MesBaseMaterialInfo mesBaseMaterialInfo); + + /** + * 新增物料信息 + * + * @param mesBaseMaterialInfo 物料信息 + * @return 结果 + */ + public int insertMesBaseMaterialInfo(MesBaseMaterialInfo mesBaseMaterialInfo); + + /** + * 修改物料信息 + * + * @param mesBaseMaterialInfo 物料信息 + * @return 结果 + */ + public int updateMesBaseMaterialInfo(MesBaseMaterialInfo mesBaseMaterialInfo); + + /** + * 删除物料信息 + * + * @param materialId 物料信息主键 + * @return 结果 + */ + public int deleteMesBaseMaterialInfoByMaterialId(Long materialId); + + /** + * 批量删除物料信息 + * + * @param materialIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteMesBaseMaterialInfoByMaterialIds(Long[] materialIds); + + + + + /** + * 查询物料信息列表 + * + * @param materialIds 物料信息ID列表 + * @return 物料信息集合 + */ + public List selectMesBaseMaterialInfoListByMaterialIds(Long[] materialIds); + +} diff --git a/hw-modules/hw-jindie/src/main/java/com/hw/jindie/service/IKingdeeErpSyncService.java b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/service/IKingdeeErpSyncService.java new file mode 100644 index 00000000..d7b5fc22 --- /dev/null +++ b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/service/IKingdeeErpSyncService.java @@ -0,0 +1,7 @@ +package com.hw.jindie.service; + +public interface IKingdeeErpSyncService { + + public int syncMaterialInfoFromErp() throws Exception; + +} diff --git a/hw-modules/hw-jindie/src/main/java/com/hw/jindie/service/impl/KingdeeErpSyncServiceImpl.java b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/service/impl/KingdeeErpSyncServiceImpl.java new file mode 100644 index 00000000..61fb86e1 --- /dev/null +++ b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/service/impl/KingdeeErpSyncServiceImpl.java @@ -0,0 +1,279 @@ +package com.hw.jindie.service.impl; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.google.gson.Gson; +import com.hw.common.core.utils.DateUtils; +import com.hw.common.core.utils.StringUtils; +import com.hw.jindie.domain.MesBaseMaterialInfo; +import com.hw.jindie.mapper.MesBaseMaterialInfoMapper; +import com.hw.jindie.service.IKingdeeErpSyncService; +import com.kingdee.bos.webapi.entity.RepoRet; +import com.kingdee.bos.webapi.sdk.K3CloudApi; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @Description: 与金蝶ERP交互业务处理类 + * @ClassName: KingdeeErpSyncServiceImpl + * @Author : xins + * @Date :2024-01-08 14:38 + * @Version :1.0 + */ +@Service +public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService { + @Autowired + private MesBaseMaterialInfoMapper mesBaseMaterialInfoMapper; + + + /** + * @throws Exception + * @Description:从金蝶ERP同步供应商信息 + */ + public static void syncSupplierInfoFromErp() throws Exception { + K3CloudApi api = new K3CloudApi(); + // "FormId": "BD_Supplier", +// "FieldKeys": "FNumber ,FName,FCreateDate,FModifyDate,FAuditDate", +// "FilterString": "FDocumentStatus='C' AND FCreateDate>'2022-01-01' ", + JSONObject queryJson = new JSONObject(); + String formId = "BD_Supplier"; + String fieldKeys = "FSupplierId,FNumber,FName,FCreateDate,FModifyDate,FAuditDate"; + String orderString = ""; + int topRowCount = 0; + int startRow = 0; + int limit = 2000; + queryJson.put("FormId", formId); + queryJson.put("FieldKeys", fieldKeys); + queryJson.put("OrderString", orderString); + queryJson.put("TopRowCount", topRowCount); + queryJson.put("StartRow", startRow); + queryJson.put("Limit", limit); + queryJson.put("SubSystemId", ""); + System.out.println(queryJson.toString()); + +// "FieldKeys": "FNumber,FName,FBaseUnitId,FSpecification,FNETWEIGHT,FGROSSWEIGHT,FCreateDate,FModifyDate,FApproveDate", +// "FilterString": "FDocumentStatus='C' AND FCreateDate>'2022-01-01' and FMaterialGroup.FNUMBER IN ('28')", + + + String result = api.billQuery(queryJson.toString()); + JSONArray resultArray = JSONArray.parseArray(result); + System.out.println(resultArray.size()); + System.out.println("供应商查询接口: " + result); + } + + + /** + * @throws Exception + * @Description:从金蝶ERP同步物料信息 + */ + @Override + public int syncMaterialInfoFromErp() throws Exception { + K3CloudApi api = new K3CloudApi(); + String FDocumentStatus = "C"; + + JSONObject queryJson = new JSONObject(); + String formId = "BD_Material"; + String fieldKeys = "FMaterialId,FNumber,FName,FBaseUnitId,FSpecification,FNETWEIGHT,FGROSSWEIGHT," + + "FCreateDate,FModifyDate,FApproveDate,FCreateOrgId,FUseOrgId"; +// String filterString = "FNumber='98010102'"; + String filterString = ""; + String orderString = ""; + int topRowCount = 0; + int startRow = 0; + int limit = 23; + queryJson.put("FormId", formId); + queryJson.put("FieldKeys", fieldKeys); + queryJson.put("FilterString", filterString); + queryJson.put("OrderString", orderString); + queryJson.put("TopRowCount", topRowCount); + queryJson.put("StartRow", startRow); + queryJson.put("Limit", limit); + queryJson.put("SubSystemId", ""); + System.out.println(queryJson.toString()); + + + String result = api.billQuery(queryJson.toString()); + JSONArray resultArray = JSONArray.parseArray(result); + System.out.println("物料单据查询接口: " + result); + + for (int i = 0; i < resultArray.size(); i++) { + try { + JSONObject resultObject = (JSONObject) resultArray.get(i); + MesBaseMaterialInfo mesBaseMaterialInfo = new MesBaseMaterialInfo(); + Integer erpId = (Integer) resultObject.get("FMaterialId"); + String materialCode = (String) resultObject.get("FNumber"); + String materialName = (String) resultObject.get("FName"); + Integer materaialUnitId = resultObject.get("FBaseUnitId") == null ? null : (Integer) resultObject.get("FBaseUnitId"); + String materialSpec = resultObject.get("FSpecification") == null ? null : (String) resultObject.get("FSpecification"); + BigDecimal netWeight = resultObject.get("FNETWEIGHT") == null ? null : (BigDecimal) resultObject.get("FNETWEIGHT"); + BigDecimal grossWeight = resultObject.get("FGROSSWEIGHT") == null ? null : (BigDecimal) resultObject.get("FGROSSWEIGHT"); + String createDateStr = resultObject.get("FCreateDate") == null ? null : (String) resultObject.get("FCreateDate"); + String modifyDateStr = resultObject.get("FModifyDate") == null ? null : (String) resultObject.get("FModifyDate"); + String approveDateStr = resultObject.get("FApproveDate") == null ? null : (String) resultObject.get("FApproveDate"); + Integer createOrgId = resultObject.get("FCreateOrgId") == null ? null : (Integer) resultObject.get("FCreateOrgId"); + Integer useOrgId = resultObject.get("FUseOrgId") == null ? null : (Integer) resultObject.get("FUseOrgId"); + + +// 2023-08-26T16:15:15.05 + + mesBaseMaterialInfo.setErpId(Long.valueOf(erpId)); + mesBaseMaterialInfo.setMaterialCode(materialCode); + mesBaseMaterialInfo.setMaterialName(materialName); + mesBaseMaterialInfo.setMaterialUnitId(Long.valueOf(materaialUnitId)); + mesBaseMaterialInfo.setMaterialSpec(materialSpec); + mesBaseMaterialInfo.setNetWeight(netWeight); + mesBaseMaterialInfo.setGrossWeight(grossWeight); + mesBaseMaterialInfo.setCreateOrgId(Long.valueOf(createOrgId)); + mesBaseMaterialInfo.setUseOrgId(Long.valueOf(useOrgId)); + + if (StringUtils.isNotEmpty(createDateStr)) { + createDateStr = createDateStr.replace("T", " "); + Date createDate = DateUtils.dateTime("yyyy-MM-dd HH:mm:ss", createDateStr); + mesBaseMaterialInfo.setCreateTime(createDate); + } + + if (StringUtils.isNotEmpty(modifyDateStr)) { + modifyDateStr = modifyDateStr.replace("T", " "); + Date modifyDate = DateUtils.dateTime("yyyy-MM-dd HH:mm:ss", modifyDateStr); + mesBaseMaterialInfo.setErpModifyDate(modifyDate); + } + + if (StringUtils.isNotEmpty(approveDateStr)) { + approveDateStr = approveDateStr.replace("T", " "); + Date approveDate = DateUtils.dateTime("yyyy-MM-dd HH:mm:ss", approveDateStr); + mesBaseMaterialInfo.setApproveDate(approveDate); + } + + mesBaseMaterialInfoMapper.insertMesBaseMaterialInfo(mesBaseMaterialInfo); + } catch (Exception e) { + e.printStackTrace(); + } + } +// System.out.println(resultArray.size()); + + + return 1; + } + + + /** + * @throws Exception + * @Descrption:从金蝶ERP同步销售订单 + */ + public static void syncSaleOrderFromErp() throws Exception { + K3CloudApi api = new K3CloudApi(); + String FDocumentStatus = "C"; + String json = "{\n" + + " \"FormId\": \"SAL_SaleOrder\",\n" + + " \"FieldKeys\": \"FID,FBillNo,FApproveDate,FSaleOrderEntry_FEntryID,FMaterialId.FNumber,FMaterialName,FQty ,FMinPlanDeliveryDate,\",\n" + +// " \"FilterString\": \"FDocumentStatus=\'" + FDocumentStatus + "\' and FMaterialGroup.FNUMBER IN ('28') \",\n" + + " \"OrderString\": \"\",\n" + + " \"TopRowCount\": 0,\n" + + " \"StartRow\": 0,\n" + + " \"Limit\": 2000,\n" + + " \"SubSystemId\": \"\"\n" + + "}"; + + JSONObject queryJson = new JSONObject(); + String formId = "SAL_SaleOrder"; + String fieldKeys = "FID,FBillNo,FApproveDate,FSaleOrderEntry_FEntryID,FMaterialId.FNumber,FMaterialName,FQty,FModifyDate,FMinPlanDeliveryDate"; + String filterString = "FNumber='98010102'"; + String orderString = ""; + int topRowCount = 0; + int startRow = 0; + int limit = 2000; + queryJson.put("FormId", formId); + queryJson.put("FieldKeys", fieldKeys); + queryJson.put("FilterString", filterString); + queryJson.put("OrderString", orderString); + queryJson.put("TopRowCount", topRowCount); + queryJson.put("StartRow", startRow); + queryJson.put("Limit", limit); + queryJson.put("SubSystemId", ""); + System.out.println(queryJson.toString()); + + String result = api.billQuery(queryJson.toString()); + JSONArray resultArray = JSONArray.parseArray(result); + System.out.println(resultArray.size()); + System.out.println("销售订单单据查询接口: " + result); + } + + + /** + * @throws Exception + * @Descrption:从金蝶ERP同步项目信息 + */ + public static void syncProjectInfoFromErp() throws Exception { + K3CloudApi api = new K3CloudApi(); + String FDocumentStatus = "C"; + + + JSONObject queryJson = new JSONObject(); + String formId = "TOND_ProjectFile"; + String fieldKeys = "FID,FNumber,FName,FPlanDate,FDocumentStatus,FForbidStatus,FCreateDate,FModifyDate,FAuditDate"; + String filterString = ""; + String orderString = ""; + int topRowCount = 0; + int startRow = 0; + int limit = 2; + queryJson.put("FormId", formId); + queryJson.put("FieldKeys", fieldKeys); + queryJson.put("FilterString", filterString); + queryJson.put("OrderString", orderString); + queryJson.put("TopRowCount", topRowCount); + queryJson.put("StartRow", startRow); + queryJson.put("Limit", limit); + queryJson.put("SubSystemId", ""); + System.out.println(queryJson.toString()); + + String result = api.billQuery(queryJson.toString()); + JSONArray resultArray = JSONArray.parseArray(result); + System.out.println(resultArray.size()); + System.out.println("项目信息单据查询接口: " + result); + } + + /** + * @throws Exception + * @Descrption:从金蝶ERP同步采购订单 + */ + public static void syncPurchaseOrderFromErp() throws Exception { + K3CloudApi api = new K3CloudApi(); + String FDocumentStatus = "C"; + + + JSONObject queryJson = new JSONObject(); + String formId = "PUR_PurchaseOrder"; + String fieldKeys = "FID,FBillNo,FApproveDate,FDocumentStatus,FPOOrderEntry_FEntryID,FMaterialId.FNumber,FMaterialId.FName,FQty,FDeliveryDate"; + String filterString = ""; + String orderString = ""; + int topRowCount = 0; + int startRow = 0; + int limit = 200; + queryJson.put("FormId", formId); + queryJson.put("FieldKeys", fieldKeys); + queryJson.put("FilterString", filterString); + queryJson.put("OrderString", orderString); + queryJson.put("TopRowCount", topRowCount); + queryJson.put("StartRow", startRow); + queryJson.put("Limit", limit); + queryJson.put("SubSystemId", ""); + System.out.println(queryJson.toString()); + + String result = api.billQuery(queryJson.toString()); + JSONArray resultArray = JSONArray.parseArray(result); + System.out.println(resultArray.size()); + System.out.println("采购订单单据查询接口: " + result); + } + + public static void main(String[] args) throws Exception { +// syncSupplierInfoFromErp(); +// syncMaterialInfoFromErp(); +// syncSaleOrderFromErp(); +// syncPurchaseOrderFromErp(); +// syncProjectInfoFromErp(); + } + +} diff --git a/hw-modules/hw-jindie/src/main/resources/mapper/jindie/MesBaseMaterialInfoMapper.xml b/hw-modules/hw-jindie/src/main/resources/mapper/jindie/MesBaseMaterialInfoMapper.xml new file mode 100644 index 00000000..43667458 --- /dev/null +++ b/hw-modules/hw-jindie/src/main/resources/mapper/jindie/MesBaseMaterialInfoMapper.xml @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select material_id, + erp_id, + material_code, + old_material_code, + material_name, + material_categories, + material_subclass, + material_type_id, + batch_flag, + material_unit_id, + material_unit, + material_matkl, + material_spec, + net_weight, + gross_weight, + factory_id, + create_org_id, + use_org_id, + prodline_id, + active_flag, + deleted_flag, + remark, + create_by, + create_time, + update_by, + update_time, + approve_date, + erp_modify_date + from mes_base_material_info + + + + + + + + insert into mes_base_material_info + + erp_id, + material_code, + old_material_code, + material_name, + material_categories, + material_subclass, + material_type_id, + batch_flag, + material_unit_id, + material_unit, + material_matkl, + material_spec, + net_weight, + gross_weight, + factory_id, + create_org_id, + use_org_id, + prodline_id, + active_flag, + deleted_flag, + remark, + create_by, + create_time, + update_by, + update_time, + approve_date, + erp_modify_date, + + + #{erpId}, + #{materialCode}, + #{oldMaterialCode}, + #{materialName}, + #{materialCategories}, + #{materialSubclass}, + #{materialTypeId}, + #{batchFlag}, + #{materialUnitId}, + #{materialUnit}, + #{materialMatkl}, + #{materialSpec}, + #{netWeight}, + #{grossWeight}, + #{factoryId}, + #{createOrgId}, + #{useOrgId}, + #{prodlineId}, + #{activeFlag}, + #{deletedFlag}, + #{remark}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{approveDate}, + #{erpModifyDate}, + + + + + update mes_base_material_info + + erp_id = #{erpId}, + material_code = #{materialCode}, + old_material_code = #{oldMaterialCode}, + material_name = #{materialName}, + material_categories = + #{materialCategories}, + + material_subclass = #{materialSubclass}, + material_type_id = #{materialTypeId}, + batch_flag = #{batchFlag}, + material_unit_id = #{materialUnitId}, + material_unit = #{materialUnit}, + material_matkl = #{materialMatkl}, + material_spec = #{materialSpec}, + net_weight = #{netWeight}, + gross_weight = #{grossWeight}, + factory_id = #{factoryId}, + create_org_id = #{createOrgId}, + use_org_id = #{useOrgId}, + prodline_id = #{prodlineId}, + active_flag = #{activeFlag}, + deleted_flag = #{deletedFlag}, + remark = #{remark}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + approve_date = #{approveDate}, + erp_modify_date = #{erpModifyDate}, + + where material_id = #{materialId} + + + + delete + from mes_base_material_info + where material_id = #{materialId} + + + + delete from mes_base_material_info where material_id in + + #{materialId} + + + + + + + + + + + diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesBaseMaterialInfoController.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesBaseMaterialInfoController.java index bfd04e7b..49950367 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesBaseMaterialInfoController.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesBaseMaterialInfoController.java @@ -115,9 +115,22 @@ public class MesBaseMaterialInfoController extends BaseController @PostMapping("/getMaterialsByMaterialIds") public AjaxResult getMaterialsByMaterialIds(@RequestBody MesBaseMaterialInfoVo mesBaseMaterialInfo) { - startPage(); List list = mesBaseMaterialInfoService.selectMesBaseMaterialInfoListByMaterialIds(mesBaseMaterialInfo.getMaterialIds()); return success(list); } + + /** + * 查询物料信息列表 + */ + @RequiresPermissions("wms:wmswarehouse:materialallocate") + @GetMapping("/selectMaterialInfos4AllocationWarehouse") + public TableDataInfo selectMaterialInfos4AllocationWarehouse(MesBaseMaterialInfo mesBaseMaterialInfo) + { + startPage(); + List list = mesBaseMaterialInfoService.selectMaterialInfos4AllocationWarehouse(mesBaseMaterialInfo); + return getDataTable(list); + } + + } diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseMaterialInfoMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseMaterialInfoMapper.xml index 245ce645..33daedc2 100644 --- a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseMaterialInfoMapper.xml +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseMaterialInfoMapper.xml @@ -1,51 +1,105 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - select material_id, material_code, material_name, material_categories, material_subclass, material_type_id, material_unit, material_matkl, material_spec, factory_id, prodline_id, is_flag, erp_id, deleted_flag, remark, create_by, create_time, update_by, update_time from mes_base_material_info + select material_id, + erp_id, + material_code, + old_material_code, + material_name, + material_categories, + material_subclass, + material_type_id, + batch_flag, + material_unit_id, + material_unit, + material_matkl, + material_spec, + net_weight, + gross_weight, + factory_id, + create_org_id, + use_org_id, + prodline_id, + active_flag, + deleted_flag, + remark, + create_by, + create_time, + update_by, + update_time, + approve_date, + erp_modify_date + from mes_base_material_info - - and material_code = #{materialCode} - and material_name like concat('%', #{materialName}, '%') - and material_categories = #{materialCategories} - and material_subclass = #{materialSubclass} - and material_type_id = #{materialTypeId} - and material_unit = #{materialUnit} - and material_matkl = #{materialMatkl} - and material_spec = #{materialSpec} - and factory_id = #{factoryId} - and prodline_id = #{prodlineId} - and is_flag = #{isFlag} - and erp_id = #{erpId} - and deleted_flag = #{deletedFlag} + and erp_id = #{erpId} + and material_code = #{materialCode} + and old_material_code = #{oldMaterialCode} + + and material_name like concat('%', #{materialName}, + '%') + + and material_categories = + #{materialCategories} + + and material_subclass = + #{materialSubclass} + + and material_type_id = #{materialTypeId} + and batch_flag = #{batchFlag} + and material_unit_id = #{materialUnitId} + and material_unit = #{materialUnit} + and material_matkl = #{materialMatkl} + and material_spec = #{materialSpec} + and net_weight = #{netWeight} + and gross_weight = #{grossWeight} + and factory_id = #{factoryId} + and create_org_id = #{createOrgId} + and use_org_id = #{useOrgId} + and prodline_id = #{prodlineId} + and active_flag = #{activeFlag} + and deleted_flag = #{deletedFlag} + and approve_date = #{approveDate} + and erp_modify_date = #{erpModifyDate} @@ -54,77 +108,109 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where material_id = #{materialId} - + insert into mes_base_material_info + erp_id, material_code, + old_material_code, material_name, material_categories, material_subclass, material_type_id, + batch_flag, + material_unit_id, material_unit, material_matkl, material_spec, + net_weight, + gross_weight, factory_id, + create_org_id, + use_org_id, prodline_id, - is_flag, - erp_id, + active_flag, deleted_flag, remark, create_by, create_time, update_by, update_time, - + approve_date, + erp_modify_date, + + #{erpId}, #{materialCode}, + #{oldMaterialCode}, #{materialName}, #{materialCategories}, #{materialSubclass}, #{materialTypeId}, + #{batchFlag}, + #{materialUnitId}, #{materialUnit}, #{materialMatkl}, #{materialSpec}, + #{netWeight}, + #{grossWeight}, #{factoryId}, + #{createOrgId}, + #{useOrgId}, #{prodlineId}, - #{isFlag}, - #{erpId}, + #{activeFlag}, #{deletedFlag}, #{remark}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime}, - + #{approveDate}, + #{erpModifyDate}, + update mes_base_material_info + erp_id = #{erpId}, material_code = #{materialCode}, + old_material_code = #{oldMaterialCode}, material_name = #{materialName}, - material_categories = #{materialCategories}, + material_categories = + #{materialCategories}, + material_subclass = #{materialSubclass}, material_type_id = #{materialTypeId}, + batch_flag = #{batchFlag}, + material_unit_id = #{materialUnitId}, material_unit = #{materialUnit}, material_matkl = #{materialMatkl}, material_spec = #{materialSpec}, + net_weight = #{netWeight}, + gross_weight = #{grossWeight}, factory_id = #{factoryId}, + create_org_id = #{createOrgId}, + use_org_id = #{useOrgId}, prodline_id = #{prodlineId}, - is_flag = #{isFlag}, - erp_id = #{erpId}, + active_flag = #{activeFlag}, deleted_flag = #{deletedFlag}, remark = #{remark}, create_by = #{createBy}, create_time = #{createTime}, update_by = #{updateBy}, update_time = #{updateTime}, + approve_date = #{approveDate}, + erp_modify_date = #{erpModifyDate}, where material_id = #{materialId} - delete from mes_base_material_info where material_id = #{materialId} + delete + from mes_base_material_info + where material_id = #{materialId} @@ -137,8 +223,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + - where material_id in @@ -147,4 +235,61 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + diff --git a/hw-ui/src/api/mes/materialinfo.js b/hw-ui/src/api/mes/materialinfo.js new file mode 100644 index 00000000..9750d550 --- /dev/null +++ b/hw-ui/src/api/mes/materialinfo.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询物料信息列表 +export function listMaterialinfo(query) { + return request({ + url: '/mes/materialinfo/list', + method: 'get', + params: query + }) +} + +// 查询物料信息详细 +export function getMaterialinfo(materialId) { + return request({ + url: '/mes/materialinfo/' + materialId, + method: 'get' + }) +} + +// 新增物料信息 +export function addMaterialinfo(data) { + return request({ + url: '/mes/materialinfo', + method: 'post', + data: data + }) +} + +// 修改物料信息 +export function updateMaterialinfo(data) { + return request({ + url: '/mes/materialinfo', + method: 'put', + data: data + }) +} + +// 删除物料信息 +export function delMaterialinfo(materialId) { + return request({ + url: '/mes/materialinfo/' + materialId, + method: 'delete' + }) +} diff --git a/hw-ui/src/views/mes/materialinfo/index.vue b/hw-ui/src/views/mes/materialinfo/index.vue new file mode 100644 index 00000000..832d8c85 --- /dev/null +++ b/hw-ui/src/views/mes/materialinfo/index.vue @@ -0,0 +1,433 @@ + + + diff --git a/hw-ui/src/views/system/role/index.vue b/hw-ui/src/views/system/role/index.vue index fb3b5ef0..796743be 100644 --- a/hw-ui/src/views/system/role/index.vue +++ b/hw-ui/src/views/system/role/index.vue @@ -602,4 +602,4 @@ export default { } } }; - \ No newline at end of file + diff --git a/hw-ui/src/views/wms/base/wmswarehouse/allocateMaterial.vue b/hw-ui/src/views/wms/base/wmswarehouse/allocateMaterial.vue new file mode 100644 index 00000000..62168345 --- /dev/null +++ b/hw-ui/src/views/wms/base/wmswarehouse/allocateMaterial.vue @@ -0,0 +1,316 @@ + + +