diff --git a/os-mes/src/main/java/com/os/mes/api/domain/ERPPersonalDetail.java b/os-mes/src/main/java/com/os/mes/api/domain/ERPPersonalDetail.java new file mode 100644 index 0000000..94082e1 --- /dev/null +++ b/os-mes/src/main/java/com/os/mes/api/domain/ERPPersonalDetail.java @@ -0,0 +1,74 @@ +package com.os.mes.api.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * erp生产计划管理个人详情 + * + * @author Yinq + * @date 2024-07-02 + */ +public class ERPPersonalDetail implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 上班时间 + */ + @JsonProperty(value = "workontime") + private String workontime; + + /** + * 下班时间 + */ + @JsonProperty(value = "workofftime") + private String workofftime; + + /** + * 身份证 + */ + @JsonProperty(value = "IDCard") + private String card; + + /** + * 完成工作量 + */ + @JsonProperty(value = "workload") + private BigDecimal workload; + + public String getCard() { + return card; + } + + public void setCard(String card) { + this.card = card; + } + + public String getWorkontime() { + return workontime; + } + + public void setWorkontime(String workontime) { + this.workontime = workontime; + } + + public String getWorkofftime() { + return workofftime; + } + + public void setWorkofftime(String workofftime) { + this.workofftime = workofftime; + } + + public BigDecimal getWorkload() { + return workload; + } + + public void setWorkload(BigDecimal workload) { + this.workload = workload; + } + + +} diff --git a/os-mes/src/main/java/com/os/mes/api/domain/ERPPersonalDetails.java b/os-mes/src/main/java/com/os/mes/api/domain/ERPPersonalDetails.java new file mode 100644 index 0000000..67307b2 --- /dev/null +++ b/os-mes/src/main/java/com/os/mes/api/domain/ERPPersonalDetails.java @@ -0,0 +1,93 @@ +package com.os.mes.api.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.io.Serializable; +import java.util.List; + +/** + * erp生产计划管理个人详情接口 + * + * @author Yinq + * @date 2024-07-02 + */ +public class ERPPersonalDetails implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 应用代码 + */ + @JsonProperty(value = "AppCode") + private String AppCode; + + /** + * 控制器 + */ + @JsonProperty(value = "Controller") + private String Controller; + + /** + * 动作名称 + */ + @JsonProperty(value = "ActionName") + private String ActionName; + + /** 生产计划流水号 */ + @JsonProperty(value = "plancode") + private String plancode; + + /** 员工详细信息 */ + @JsonProperty(value = "userdatas") + private List userdatas; + + public String getAppCode() { + return AppCode; + } + + public void setAppCode(String appCode) { + AppCode = appCode; + } + + public String getController() { + return Controller; + } + + public void setController(String controller) { + Controller = controller; + } + + public String getActionName() { + return ActionName; + } + + public void setActionName(String actionName) { + ActionName = actionName; + } + + public String getPlancode() { + return plancode; + } + + public void setPlancode(String plancode) { + this.plancode = plancode; + } + + public List getUserdatas() { + return userdatas; + } + + public void setUserdatas(List userdatas) { + this.userdatas = userdatas; + } + + @Override + public String toString() { + return "ERPPersonalDetails{" + + "AppCode='" + AppCode + '\'' + + ", Controller='" + Controller + '\'' + + ", ActionName='" + ActionName + '\'' + + ", plancode='" + plancode + '\'' + + ", userdatas=" + userdatas + + '}'; + } +} diff --git a/os-mes/src/main/java/com/os/mes/api/service/IERPPortService.java b/os-mes/src/main/java/com/os/mes/api/service/IERPPortService.java index 386bc62..7af1949 100644 --- a/os-mes/src/main/java/com/os/mes/api/service/IERPPortService.java +++ b/os-mes/src/main/java/com/os/mes/api/service/IERPPortService.java @@ -60,4 +60,10 @@ public interface IERPPortService { */ void getProductionPlanTask(ERPParamDto paramDto); + /** + * 定时上传ERP生产计划管理个人详情 + * @param paramDto + */ + void getProdPlanPersonalDetailsTask(ERPParamDto paramDto); + } diff --git a/os-mes/src/main/java/com/os/mes/api/service/impl/ERPPortServiceImpl.java b/os-mes/src/main/java/com/os/mes/api/service/impl/ERPPortServiceImpl.java index 4aaf414..21d49ce 100644 --- a/os-mes/src/main/java/com/os/mes/api/service/impl/ERPPortServiceImpl.java +++ b/os-mes/src/main/java/com/os/mes/api/service/impl/ERPPortServiceImpl.java @@ -4,7 +4,11 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.PropertyNamingStrategy; -import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.databind.cfg.CoercionAction; +import com.fasterxml.jackson.databind.cfg.CoercionInputShape; +import com.fasterxml.jackson.databind.type.LogicalType; +import com.os.common.constant.MesConstants; +import com.os.common.utils.DateUtils; import com.os.common.utils.StringUtils; import com.os.mes.api.domain.*; import com.os.mes.api.service.IERPPortService; @@ -14,8 +18,12 @@ import com.os.mes.base.domain.BaseStaffInfo; import com.os.mes.base.service.IBaseStaffInfoService; import com.os.mes.prod.domain.ProdOrderDetail; import com.os.mes.prod.domain.ProdPlanErpInfo; +import com.os.mes.prod.domain.ProdPlanExecuteUser; +import com.os.mes.prod.domain.ProdPlanInfo; import com.os.mes.prod.service.IProdOrderInfoService; import com.os.mes.prod.service.IProdPlanErpInfoService; +import com.os.mes.prod.service.IProdPlanExecuteUserService; +import com.os.mes.prod.service.IProdPlanInfoService; import com.os.mes.prod.service.impl.ProdOrderInfoServiceImpl; import com.os.mes.record.domain.RecordStaffSalary; import org.slf4j.Logger; @@ -47,6 +55,12 @@ public class ERPPortServiceImpl implements IERPPortService { @Autowired private IProdPlanErpInfoService prodPlanErpInfoService; + @Autowired + private IProdPlanInfoService prodPlanInfoService; + + @Autowired + private IProdPlanExecuteUserService prodPlanExecuteUserService; + /** * 获取ERP订单接口 * @@ -67,6 +81,8 @@ public class ERPPortServiceImpl implements IERPPortService { // result = "{\"Successful\":true,\"ErrorMessage\":null,\"Logined\":false,\"ReturnData\":{\"totle\":3,\"data\":[{\"BeltWidth\":1600,\"BeltClothLayer\":5,\"BeltRequiredLength\":250,\"GluingRequiredThickness\":6,\"LowerGlueRequiredThickness\":2,\"ProductionGluingThickness\":4.5,\"UpperBufferAdhesiveThickness\":1.5,\"ProductionLowerGlueThickness\":1.2,\"LowerBufferAdhesiveThickness\":0.8,\"ClothGlueThickness\":1.3,\"SmallClothFabricLayer\":0,\"SmallClothThickness\":0,\"IsNeedThicken\":\"否\",\"EachLayerThickenThickness\":0,\"ExtraThickeningThickness\":0,\"TotalProductionThickness\":14.5,\"AdditionalThickness\":0.5,\"RecommendedShimThickness\":13.5,\"SemiFinishedProductWidth\":1560,\"RollingProductionMeters\":251.8,\"RecommendedPadWidth\":1794,\"BigFabricManufacturer\":\"安徽旌德\",\"FabricSpecifications\":{\"MaterialNo\":\"WLFB0066\",\"MaterialName\":\"EE300N\",\"MaterialSpecification\":\"EE300N\",\"MaterialLargeCategories\":\"帆布类\",\"MaterialSmallCategories\":\"EE-N轻型浸胶帆布\"},\"EstimatedFabricUsage\":1259,\"ClothWidth\":1600,\"ClothWeight\":1752.528,\"SmallFabricSpecificationsDic\":{\"MaterialNo\":\"\",\"MaterialName\":\"\",\"MaterialSpecification\":\"\",\"MaterialLargeCategories\":\"\",\"MaterialSmallCategories\":\"\"},\"SmallClothWidth\":1300,\"SmallClothUsage\":0,\"SmallClothWeight\":0,\"GluingProcess\":\"双胶\",\"UpperLowerGlue\":{\"MaterialList_1\":[{\"MaterialNo\":\"WLXJ0008\",\"Material\":{\"MaterialNo\":\"WLXJ0008\",\"MaterialName\":\"天然胶\",\"MaterialSpecification\":\"天然胶\",\"MaterialLargeCategories\":\"橡胶类\",\"MaterialSmallCategories\":\"天然橡胶\"},\"EnterSecondLaneWeight\":47.6607},{\"MaterialNo\":\"WLXJ0011\",\"Material\":{\"MaterialNo\":\"WLXJ0011\",\"MaterialName\":\"丁苯-1502\",\"MaterialSpecification\":\"SBR1502\",\"MaterialLargeCategories\":\"橡胶类\",\"MaterialSmallCategories\":\"丁苯橡胶\"},\"EnterSecondLaneWeight\":27.1485},{\"MaterialNo\":\"WLXJ0005\",\"Material\":{\"MaterialNo\":\"WLXJ0005\",\"MaterialName\":\"顺丁橡胶BR9000\",\"MaterialSpecification\":\"BR9000\",\"MaterialLargeCategories\":\"橡胶类\",\"MaterialSmallCategories\":\"顺丁橡胶\"},\"EnterSecondLaneWeight\":21.1155},{\"MaterialNo\":\"WLXJ0004\",\"Material\":{\"MaterialNo\":\"WLXJ0004\",\"MaterialName\":\"普通母胶9\",\"MaterialSpecification\":\"普通母胶9\",\"MaterialLargeCategories\":\"橡胶类\",\"MaterialSmallCategories\":\"再生胶\"},\"EnterSecondLaneWeight\":27.1485},{\"MaterialNo\":\"XJZJ0029\",\"Material\":{\"MaterialNo\":\"XJZJ0029\",\"MaterialName\":\"氧化锌\",\"MaterialSpecification\":\"氧化锌\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"化合物\"},\"EnterSecondLaneWeight\":3.837},{\"MaterialNo\":\"XJZJ0028\",\"Material\":{\"MaterialNo\":\"XJZJ0028\",\"MaterialName\":\"硬脂酸\",\"MaterialSpecification\":\"硬脂酸\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"硫化活性剂\"},\"EnterSecondLaneWeight\":2.4132},{\"MaterialNo\":\"XJZJ0082\",\"Material\":{\"MaterialNo\":\"XJZJ0082\",\"MaterialName\":\"橡胶防老剂RD(TMQ)\",\"MaterialSpecification\":\"防老剂RD(TMQ)\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"橡胶防老剂\"},\"EnterSecondLaneWeight\":1.9185},{\"MaterialNo\":\"XJZJ0092\",\"Material\":{\"MaterialNo\":\"XJZJ0092\",\"MaterialName\":\"L-6023橡胶特种防护蜡\",\"MaterialSpecification\":\"L-6023\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"固体蜡\"},\"EnterSecondLaneWeight\":1.9306},{\"MaterialNo\":\"XJZJ0031\",\"Material\":{\"MaterialNo\":\"XJZJ0031\",\"MaterialName\":\"古马隆\",\"MaterialSpecification\":\"古马隆\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"化合物\"},\"EnterSecondLaneWeight\":4.8264},{\"MaterialNo\":\"XJZJ0062\",\"Material\":{\"MaterialNo\":\"XJZJ0062\",\"MaterialName\":\"炭黑N330\",\"MaterialSpecification\":\"炭黑N330\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"橡胶补强剂\"},\"EnterSecondLaneWeight\":57.5548},{\"MaterialNo\":\"XJZJ0013\",\"Material\":{\"MaterialNo\":\"XJZJ0013\",\"MaterialName\":\"2#橡胶油\",\"MaterialSpecification\":\"2#橡胶油\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"液体油\"},\"EnterSecondLaneWeight\":9.5925},{\"MaterialNo\":\"\",\"Material\":{\"MaterialNo\":\"\",\"MaterialName\":\"\",\"MaterialSpecification\":\"\",\"MaterialLargeCategories\":\"\",\"MaterialSmallCategories\":\"\"},\"EnterSecondLaneWeight\":0},{\"MaterialNo\":\"\",\"Material\":{\"MaterialNo\":\"\",\"MaterialName\":\"\",\"MaterialSpecification\":\"\",\"MaterialLargeCategories\":\"\",\"MaterialSmallCategories\":\"\"},\"EnterSecondLaneWeight\":0}],\"MaterialList_2\":[{\"MaterialNo\":\"XJZJ0070\",\"Material\":{\"MaterialNo\":\"XJZJ0070\",\"MaterialName\":\"促进剂CBS(CZ)\",\"MaterialSpecification\":\"促进剂CBS(CZ)\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"橡胶促进剂\"},\"ProductionRequiresWeight\":1.6078},{\"MaterialNo\":\"XJZJ0093\",\"Material\":{\"MaterialNo\":\"XJZJ0093\",\"MaterialName\":\"硫磺\",\"MaterialSpecification\":\"硫磺\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"矿物质\"},\"ProductionRequiresWeight\":3.514},{\"MaterialNo\":\"\",\"Material\":{\"MaterialNo\":\"\",\"MaterialName\":\"\",\"MaterialSpecification\":\"\",\"MaterialLargeCategories\":\"\",\"MaterialSmallCategories\":\"\"},\"ProductionRequiresWeight\":0},{\"MaterialNo\":\"\",\"Material\":{\"MaterialNo\":\"\",\"MaterialName\":\"\",\"MaterialSpecification\":\"\",\"MaterialLargeCategories\":\"\",\"MaterialSmallCategories\":\"\"},\"ProductionRequiresWeight\":0}],\"AfterPromotionTotalWeight\":208.2362},\"UpperLowerGlueCoefficient\":1.142,\"UpperLowerGlueUsage\":2070.4,\"LowerGlue\":{\"MaterialList_1\":[{\"MaterialNo\":\"WLXJ0008\",\"Material\":{\"MaterialNo\":\"WLXJ0008\",\"MaterialName\":\"天然胶\",\"MaterialSpecification\":\"天然胶\",\"MaterialLargeCategories\":\"橡胶类\",\"MaterialSmallCategories\":\"天然橡胶\"},\"EnterSecondLaneWeight\":69.6848},{\"MaterialNo\":\"WLXJ0005\",\"Material\":{\"MaterialNo\":\"WLXJ0005\",\"MaterialName\":\"顺丁橡胶BR9000\",\"MaterialSpecification\":\"BR9000\",\"MaterialLargeCategories\":\"橡胶类\",\"MaterialSmallCategories\":\"顺丁橡胶\"},\"EnterSecondLaneWeight\":12.204},{\"MaterialNo\":\"\",\"Material\":{\"MaterialNo\":\"\",\"MaterialName\":\"\",\"MaterialSpecification\":\"\",\"MaterialLargeCategories\":\"\",\"MaterialSmallCategories\":\"\"},\"EnterSecondLaneWeight\":0},{\"MaterialNo\":\"WLXJ0004\",\"Material\":{\"MaterialNo\":\"WLXJ0004\",\"MaterialName\":\"普通母胶9\",\"MaterialSpecification\":\"普通母胶9\",\"MaterialLargeCategories\":\"橡胶类\",\"MaterialSmallCategories\":\"再生胶\"},\"EnterSecondLaneWeight\":67.122},{\"MaterialNo\":\"XJZJ0029\",\"Material\":{\"MaterialNo\":\"XJZJ0029\",\"MaterialName\":\"氧化锌\",\"MaterialSpecification\":\"氧化锌\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"化合物\"},\"EnterSecondLaneWeight\":2.4591},{\"MaterialNo\":\"XJZJ0028\",\"Material\":{\"MaterialNo\":\"XJZJ0028\",\"MaterialName\":\"硬脂酸\",\"MaterialSpecification\":\"硬脂酸\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"硫化活性剂\"},\"EnterSecondLaneWeight\":1.6414},{\"MaterialNo\":\"XJZJ0092\",\"Material\":{\"MaterialNo\":\"XJZJ0092\",\"MaterialName\":\"L-6023橡胶特种防护蜡\",\"MaterialSpecification\":\"L-6023\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"固体蜡\"},\"EnterSecondLaneWeight\":1.6414},{\"MaterialNo\":\"XJZJ0082\",\"Material\":{\"MaterialNo\":\"XJZJ0082\",\"MaterialName\":\"橡胶防老剂RD(TMQ)\",\"MaterialSpecification\":\"防老剂RD(TMQ)\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"橡胶防老剂\"},\"EnterSecondLaneWeight\":1.6414},{\"MaterialNo\":\"XJZJ0031\",\"Material\":{\"MaterialNo\":\"XJZJ0031\",\"MaterialName\":\"古马隆\",\"MaterialSpecification\":\"古马隆\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"化合物\"},\"EnterSecondLaneWeight\":2.4591},{\"MaterialNo\":\"XJZJ0062\",\"Material\":{\"MaterialNo\":\"XJZJ0062\",\"MaterialName\":\"炭黑N330\",\"MaterialSpecification\":\"炭黑N330\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"橡胶补强剂\"},\"EnterSecondLaneWeight\":18.8552},{\"MaterialNo\":\"XJZJ0059\",\"Material\":{\"MaterialNo\":\"XJZJ0059\",\"MaterialName\":\"白炭黑\",\"MaterialSpecification\":\"白炭黑\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"橡胶补强剂\"},\"EnterSecondLaneWeight\":15.9872},{\"MaterialNo\":\"XJZJ0013\",\"Material\":{\"MaterialNo\":\"XJZJ0013\",\"MaterialName\":\"2#橡胶油\",\"MaterialSpecification\":\"2#橡胶油\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"液体油\"},\"EnterSecondLaneWeight\":1.2204},{\"MaterialNo\":\"XJZJ0024\",\"Material\":{\"MaterialNo\":\"XJZJ0024\",\"MaterialName\":\"SI69(KH-845)\",\"MaterialSpecification\":\"SI69(KH-845)\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"粘合剂\"},\"EnterSecondLaneWeight\":2.0503},{\"MaterialNo\":\"XJZJ0083\",\"Material\":{\"MaterialNo\":\"XJZJ0083\",\"MaterialName\":\"橡胶防老剂4010NA(IPPD)\",\"MaterialSpecification\":\"防老剂4010NA(IPPD)\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"橡胶防老剂\"},\"EnterSecondLaneWeight\":0.8177},{\"MaterialNo\":\"XJZJ0118\",\"Material\":{\"MaterialNo\":\"XJZJ0118\",\"MaterialName\":\"二氧化硅微粉\",\"MaterialSpecification\":\"二氧化硅微粉\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"化合物\"},\"EnterSecondLaneWeight\":6.102},{\"MaterialNo\":\"\",\"Material\":{\"MaterialNo\":\"\",\"MaterialName\":\"\",\"MaterialSpecification\":\"\",\"MaterialLargeCategories\":\"\",\"MaterialSmallCategories\":\"\"},\"EnterSecondLaneWeight\":0}],\"MaterialList_2\":[{\"MaterialNo\":\"XJZJ0093\",\"Material\":{\"MaterialNo\":\"XJZJ0093\",\"MaterialName\":\"硫磺\",\"MaterialSpecification\":\"硫磺\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"矿物质\"},\"ProductionRequiresWeight\":6.5225},{\"MaterialNo\":\"XJZJ0071\",\"Material\":{\"MaterialNo\":\"XJZJ0071\",\"MaterialName\":\"促进剂MBTS(DM)\",\"MaterialSpecification\":\"促进剂MBTS(DM)\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"橡胶促进剂\"},\"ProductionRequiresWeight\":0.5244},{\"MaterialNo\":\"XJZJ0070\",\"Material\":{\"MaterialNo\":\"XJZJ0070\",\"MaterialName\":\"促进剂CBS(CZ)\",\"MaterialSpecification\":\"促进剂CBS(CZ)\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"橡胶促进剂\"},\"ProductionRequiresWeight\":0.9177},{\"MaterialNo\":\"XJZJ0091\",\"Material\":{\"MaterialNo\":\"XJZJ0091\",\"MaterialName\":\"防焦剂CTP\",\"MaterialSpecification\":\"防焦剂CTP\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"防焦剂\"},\"ProductionRequiresWeight\":0.3933},{\"MaterialNo\":\"\",\"Material\":{\"MaterialNo\":\"\",\"MaterialName\":\"\",\"MaterialSpecification\":\"\",\"MaterialLargeCategories\":\"\",\"MaterialSmallCategories\":\"\"},\"ProductionRequiresWeight\":0}],\"AfterPromotionTotalWeight\":208.986},\"LowerGlueCoefficient\":1.145,\"LowerGlueUsage\":553.557,\"LargeClothGlue\":{\"MaterialList_1\":[{\"MaterialNo\":\"WLXJ0008\",\"Material\":{\"MaterialNo\":\"WLXJ0008\",\"MaterialName\":\"天然胶\",\"MaterialSpecification\":\"天然胶\",\"MaterialLargeCategories\":\"橡胶类\",\"MaterialSmallCategories\":\"天然橡胶\"},\"EnterSecondLaneWeight\":10.478},{\"MaterialNo\":\"WLXJ0011\",\"Material\":{\"MaterialNo\":\"WLXJ0011\",\"MaterialName\":\"丁苯-1502\",\"MaterialSpecification\":\"SBR1502\",\"MaterialLargeCategories\":\"橡胶类\",\"MaterialSmallCategories\":\"丁苯橡胶\"},\"EnterSecondLaneWeight\":31.434},{\"MaterialNo\":\"WLXJ0013\",\"Material\":{\"MaterialNo\":\"WLXJ0013\",\"MaterialName\":\"丁苯-1712\",\"MaterialSpecification\":\"SBR1712\",\"MaterialLargeCategories\":\"橡胶类\",\"MaterialSmallCategories\":\"丁苯橡胶\"},\"EnterSecondLaneWeight\":18.3365},{\"MaterialNo\":\"WLXJ0004\",\"Material\":{\"MaterialNo\":\"WLXJ0004\",\"MaterialName\":\"普通母胶9\",\"MaterialSpecification\":\"普通母胶9\",\"MaterialLargeCategories\":\"橡胶类\",\"MaterialSmallCategories\":\"再生胶\"},\"EnterSecondLaneWeight\":39.2925},{\"MaterialNo\":\"XJZJ0029\",\"Material\":{\"MaterialNo\":\"XJZJ0029\",\"MaterialName\":\"氧化锌\",\"MaterialSpecification\":\"氧化锌\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"化合物\"},\"EnterSecondLaneWeight\":2.9548},{\"MaterialNo\":\"XJZJ0028\",\"Material\":{\"MaterialNo\":\"XJZJ0028\",\"MaterialName\":\"硬脂酸\",\"MaterialSpecification\":\"硬脂酸\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"硫化活性剂\"},\"EnterSecondLaneWeight\":1.8441},{\"MaterialNo\":\"XJZJ0082\",\"Material\":{\"MaterialNo\":\"XJZJ0082\",\"MaterialName\":\"橡胶防老剂RD(TMQ)\",\"MaterialSpecification\":\"防老剂RD(TMQ)\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"橡胶防老剂\"},\"EnterSecondLaneWeight\":1.4774},{\"MaterialNo\":\"XJZJ0031\",\"Material\":{\"MaterialNo\":\"XJZJ0031\",\"MaterialName\":\"古马隆\",\"MaterialSpecification\":\"古马隆\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"化合物\"},\"EnterSecondLaneWeight\":5.8991},{\"MaterialNo\":\"XJZJ0030\",\"Material\":{\"MaterialNo\":\"XJZJ0030\",\"MaterialName\":\"碳酸钙\",\"MaterialSpecification\":\"碳酸钙\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"化合物\"},\"EnterSecondLaneWeight\":26.7189},{\"MaterialNo\":\"XJZJ0066\",\"Material\":{\"MaterialNo\":\"XJZJ0066\",\"MaterialName\":\"炭黑N660\",\"MaterialSpecification\":\"炭黑N660\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"橡胶补强剂\"},\"EnterSecondLaneWeight\":38.7162},{\"MaterialNo\":\"XJZJ0059\",\"Material\":{\"MaterialNo\":\"XJZJ0059\",\"MaterialName\":\"白炭黑\",\"MaterialSpecification\":\"白炭黑\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"橡胶补强剂\"},\"EnterSecondLaneWeight\":11.0543},{\"MaterialNo\":\"XJZJ0040\",\"Material\":{\"MaterialNo\":\"XJZJ0040\",\"MaterialName\":\"芳烃油\",\"MaterialSpecification\":\"芳烃油\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"化合物\"},\"EnterSecondLaneWeight\":15.4027},{\"MaterialNo\":\"\",\"Material\":{\"MaterialNo\":\"\",\"MaterialName\":\"\",\"MaterialSpecification\":\"\",\"MaterialLargeCategories\":\"\",\"MaterialSmallCategories\":\"\"},\"EnterSecondLaneWeight\":0},{\"MaterialNo\":\"\",\"Material\":{\"MaterialNo\":\"\",\"MaterialName\":\"\",\"MaterialSpecification\":\"\",\"MaterialLargeCategories\":\"\",\"MaterialSmallCategories\":\"\"},\"EnterSecondLaneWeight\":0}],\"MaterialList_2\":[{\"MaterialNo\":\"XJZJ0093\",\"Material\":{\"MaterialNo\":\"XJZJ0093\",\"MaterialName\":\"硫磺\",\"MaterialSpecification\":\"硫磺\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"矿物质\"},\"ProductionRequiresWeight\":3.9893},{\"MaterialNo\":\"XJZJ0070\",\"Material\":{\"MaterialNo\":\"XJZJ0070\",\"MaterialName\":\"促进剂CBS(CZ)\",\"MaterialSpecification\":\"促进剂CBS(CZ)\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"橡胶促进剂\"},\"ProductionRequiresWeight\":1.6034},{\"MaterialNo\":\"XJZJ0071\",\"Material\":{\"MaterialNo\":\"XJZJ0071\",\"MaterialName\":\"促进剂MBTS(DM)\",\"MaterialSpecification\":\"促进剂MBTS(DM)\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"橡胶促进剂\"},\"ProductionRequiresWeight\":0.4199},{\"MaterialNo\":\"XJZJ0055\",\"Material\":{\"MaterialNo\":\"XJZJ0055\",\"MaterialName\":\"橡胶黏合剂AS-88(AB-30)\",\"MaterialSpecification\":\"AB-30\",\"MaterialLargeCategories\":\"橡胶助剂\",\"MaterialSmallCategories\":\"橡胶黏合剂\"},\"ProductionRequiresWeight\":6.3562},{\"MaterialNo\":\"\",\"Material\":{\"MaterialNo\":\"\",\"MaterialName\":\"\",\"MaterialSpecification\":\"\",\"MaterialLargeCategories\":\"\",\"MaterialSmallCategories\":\"\"},\"ProductionRequiresWeight\":0},{\"MaterialNo\":\"\",\"Material\":{\"MaterialNo\":\"\",\"MaterialName\":\"\",\"MaterialSpecification\":\"\",\"MaterialLargeCategories\":\"\",\"MaterialSmallCategories\":\"\"},\"ProductionRequiresWeight\":0}],\"AfterPromotionTotalWeight\":210.0885},\"LargeClothGlueCoefficient\":1.279,\"LargeClothGlueUsage\":1724.3264,\"BufferGlueUsage\":1176.68,\"MiddleGlue\":{\"MaterialList_1\":\"\",\"MaterialList_2\":\"\",\"AfterPromotionTotalWeight\":\"\"},\"MiddleGlueCoefficient\":0,\"MiddleGlueUsage\":0,\"SmallBarWidth\":300,\"SmallBarThickness\":0,\"SmallBarStandardUsage\":0,\"FormingArea\":2000,\"RollCoatingArea\":2133.3333,\"RolledFabricArea\":2000,\"SulfurizationArea\":4133.3333,\"LargeClothArea\":2014.4,\"SmallClothArea\":0,\"BeltTotalArea\":4133.3333,\"SkirtArea\":0,\"PartitionArea\":0,\"EdgeBandingTotalArea\":4133.3333,\"WireropeBeltTotalArea\":1520,\"OrderDate\":\"2024/6/13 0:00:00\",\"DeliveryDate\":\"2024/5/31 0:00:00\",\"SeqNo\":\"SCRW00020907\",\"ProductType\":\"承包\",\"ProductStatus\":\"待生产\",\"OrderOwner\":\"福建信明 XDLS20240624\",\"CustomerInfo\":\"沙钢(八车间剩余价值皮带) 承包 K501 SCJH00005709\",\"BeltLengthSpecifications\":\"EP300输送带 1600*5(6+2) 250米\",\"AreaAndWeight\":\"面积:4133.3333 重量:7277.49\",\"UsingRawMaterials\":\"布: EP300 1259 米 胶:14# + P芯胶(普通大布胶)\"}],\"result\":\"success\",\"message\":\"\"},\"DataType\":0}"; // 处理接口返回消息 ObjectMapper resultMapper = new ObjectMapper(); + resultMapper.coercionConfigFor(LogicalType.Collection) + .setCoercion(CoercionInputShape.EmptyString, CoercionAction.AsEmpty); // 将 JSON 字符串转换为 Java 对象 ResponseData data = resultMapper.readValue(result, ResponseData.class); List dataList = data.getReturnData().getData(); @@ -244,13 +260,15 @@ public class ERPPortServiceImpl implements IERPPortService { // 处理接口返回消息 ObjectMapper resMapper = new ObjectMapper(); - HashMap map = resMapper.readValue(result, new TypeReference>() {}); + HashMap map = resMapper.readValue(result, new TypeReference>() { + }); HashMap returnData = (HashMap) map.get("ReturnData"); - List dataList = resMapper.convertValue(returnData.get("data"), new TypeReference>() {}); + List dataList = resMapper.convertValue(returnData.get("data"), new TypeReference>() { + }); // 新增生产计划信息List prodPlanErpInfoService.insertOrUpdateProdPlanErpInfoList(dataList); logger.warn("获取生产计划管理成功:" + requestParam + "|" + result); - } catch (JsonProcessingException e) { + } catch (Exception e) { logger.warn("获取生产计划管理异常:" + requestParam + "|" + result + "|" + e); } @@ -260,6 +278,7 @@ public class ERPPortServiceImpl implements IERPPortService { /** * 定时同步ERP生产计划管理 + * * @param paramDto */ @Override @@ -267,4 +286,102 @@ public class ERPPortServiceImpl implements IERPPortService { this.getERPProductionPlan(paramDto); } + /** + * 定时上传ERP生产计划管理个人详情 + * + * @param paramDto + */ + @Override + public void getProdPlanPersonalDetailsTask(ERPParamDto paramDto) { + try { + List planInfoList = getFinishedPlanInfoList(); + for (ProdPlanInfo planInfo : planInfoList) { + processPlanInfo(planInfo); + } + logger.info("定时上传ERP生产计划管理个人详情任务执行完成"); + } catch (Exception e) { + logger.error("定时上传ERP生产计划管理个人详情任务执行异常", e); + throw new RuntimeException(e); + } + } + + /** + * 获取已完成的计划信息列表 + */ + private List getFinishedPlanInfoList() { + ProdPlanInfo prodPlanInfo = new ProdPlanInfo(); + prodPlanInfo.setPlanStatus(MesConstants.MES_PLAN_STATUS_FINISH); + prodPlanInfo.setUploadFlag(MesConstants.MES_IS_ERP_NO); + List planInfoList = prodPlanInfoService.selectProdPlanInfoList(prodPlanInfo); + logger.info("获取到{}条已完成的计划信息", planInfoList.size()); + return planInfoList; + } + + /** + * 处理单个计划信息 + */ + private void processPlanInfo(ProdPlanInfo planInfo) { + String planCode = planInfo.getPlanCode(); + logger.info("开始处理计划信息,计划编号:{}", planCode); + + List planExecuteUserList = prodPlanExecuteUserService.selectPlanExecuteUserListByPlanCode(planCode); + logger.info("获取到{}条计划执行用户信息", planExecuteUserList.size()); + + ERPPersonalDetails personalDetails = new ERPPersonalDetails(); + personalDetails.setAppCode(ERPConstants.personalDetailsAppCode); + personalDetails.setController(ERPConstants.personalDetailsController); + personalDetails.setActionName(ERPConstants.personalDetailsActionName); + personalDetails.setPlancode(planCode); + List detailList = new ArrayList<>(); + for (ProdPlanExecuteUser executeUser : planExecuteUserList) { + ERPPersonalDetail personalDetail = new ERPPersonalDetail(); + personalDetail.setCard(executeUser.getIdCard()); + Date planBeginDate = executeUser.getPlanBeginDate(); + Date planEndDate = executeUser.getPlanEndDate(); + personalDetail.setWorkontime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, planBeginDate)); + personalDetail.setWorkofftime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, planEndDate)); + personalDetail.setWorkload(executeUser.getCompleteAmount()); + detailList.add(personalDetail); + } + personalDetails.setUserdatas(detailList); + sendPersonalDetailsToERP(personalDetails); + } + + /** + * 发送个人详情到ERP + */ + private void sendPersonalDetailsToERP(ERPPersonalDetails personalDetails) { + try { + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.UPPER_CAMEL_CASE); + String requestParam = objectMapper.writeValueAsString(personalDetails); +// String result = ApiUtils.sendERPHttpPost(ERPConstants.ERP_URL, requestParam); + String result = "{\n" + + "\t\"Successful\": true,\n" + + "\t\"ErrorMessage\": null,\n" + + "\t\"Detail\": null,\n" + + "\t\"Logined\": false,\n" + + "\t\"ReturnData\": {\n" + + "\t\t\"result\": \"success\",\n" + + "\t\t\"message\": \"\"\n" + + "\t},\n" + + "\t\"DataType\": 0\n" + + "}"; + logger.info("发送到ERP的请求参数:{}|ERP返回结果:{}", requestParam, result); + // 处理接口返回消息 + ObjectMapper resultMapper = new ObjectMapper(); + // 将 JSON 字符串转换为 Java 对象 + HashMap hashMap = resultMapper.readValue(result, HashMap.class); + Boolean SuccessFlag = (Boolean) hashMap.get("Successful"); + if (SuccessFlag){ + String planCode = personalDetails.getPlancode(); + prodPlanInfoService.updateProdPlanInfoUploadFlag(planCode); + logger.info("发送个人详情到ERP工单编号:{}已上传ERP!", planCode); + } + } catch (Exception e) { + logger.error("发送个人详情到ERP异常", e); + throw new RuntimeException(e); + } + } + } diff --git a/os-mes/src/main/java/com/os/mes/prod/mapper/ProdPlanExecuteUserMapper.java b/os-mes/src/main/java/com/os/mes/prod/mapper/ProdPlanExecuteUserMapper.java index 65f3d7d..e6daadb 100644 --- a/os-mes/src/main/java/com/os/mes/prod/mapper/ProdPlanExecuteUserMapper.java +++ b/os-mes/src/main/java/com/os/mes/prod/mapper/ProdPlanExecuteUserMapper.java @@ -66,4 +66,11 @@ public interface ProdPlanExecuteUserMapper { * @return 生产工单聚合执行用户集合 */ List selectAggProdPlanExecuteUserList(ProdPlanExecuteUser prodPlanExecuteUser); + + /** + * 通过planCode查询生产工单执行用户列表 + * @param planCode + * @return + */ + List selectPlanExecuteUserListByPlanCode(String planCode); } diff --git a/os-mes/src/main/java/com/os/mes/prod/service/IProdPlanExecuteUserService.java b/os-mes/src/main/java/com/os/mes/prod/service/IProdPlanExecuteUserService.java index 3239e2e..969f7ed 100644 --- a/os-mes/src/main/java/com/os/mes/prod/service/IProdPlanExecuteUserService.java +++ b/os-mes/src/main/java/com/os/mes/prod/service/IProdPlanExecuteUserService.java @@ -58,4 +58,11 @@ public interface IProdPlanExecuteUserService { * @return 结果 */ public int deleteProdPlanExecuteUserByObjId(Long objId); + + /** + * 通过planCode查询生产工单执行用户列表 + * @param planCode + * @return + */ + public List selectPlanExecuteUserListByPlanCode(String planCode); } diff --git a/os-mes/src/main/java/com/os/mes/prod/service/impl/ProdPlanErpInfoServiceImpl.java b/os-mes/src/main/java/com/os/mes/prod/service/impl/ProdPlanErpInfoServiceImpl.java index f070563..ee0bc4b 100644 --- a/os-mes/src/main/java/com/os/mes/prod/service/impl/ProdPlanErpInfoServiceImpl.java +++ b/os-mes/src/main/java/com/os/mes/prod/service/impl/ProdPlanErpInfoServiceImpl.java @@ -2,6 +2,7 @@ package com.os.mes.prod.service.impl; import java.util.List; +import com.os.common.constant.MesConstants; import com.os.common.utils.DateUtils; import com.os.common.utils.StringUtils; import com.os.mes.base.domain.BaseDeviceLedger; @@ -129,6 +130,10 @@ public class ProdPlanErpInfoServiceImpl implements IProdPlanErpInfoService { prodPlanInfo.setPlanCode(seqNo); List planInfoList = prodPlanInfoService.selectProdPlanInfoList(prodPlanInfo); ProdPlanInfo planInfo = planInfoList.get(0); + if (planInfo.getUploadFlag().equals(MesConstants.MES_IS_ERP_YES) || planInfo.getPlanStatus().equals(MesConstants.MES_PLAN_STATUS_FINISH) + || planInfo.getPlanStatus().equals(MesConstants.MES_PLAN_STATUS_IN)) { + continue; + } planInfo.setPlanCode(seqNo); planInfo.setOrderCode(planErpInfo.getTaskCode()); planInfo.setPlanAmount(planErpInfo.getWorkload()); @@ -155,7 +160,7 @@ public class ProdPlanErpInfoServiceImpl implements IProdPlanErpInfoService { planInfo.setPlanEndTime(planErpInfo.getPlanEndTime()); planInfo.setTeamCode(planErpInfo.getTeamNo()); planInfo.setMaterialName(planErpInfo.getConveyorLengthSpecification()); - planInfo.setPlanStatus("0"); + planInfo.setPlanStatus("4"); planInfo.setImportFlag("1"); prodPlanInfoService.insertProdPlanInfo(planInfo); this.insertProdPlanErpInfo(planErpInfo); diff --git a/os-mes/src/main/java/com/os/mes/prod/service/impl/ProdPlanExecuteUserServiceImpl.java b/os-mes/src/main/java/com/os/mes/prod/service/impl/ProdPlanExecuteUserServiceImpl.java index e1fc347..dde8c12 100644 --- a/os-mes/src/main/java/com/os/mes/prod/service/impl/ProdPlanExecuteUserServiceImpl.java +++ b/os-mes/src/main/java/com/os/mes/prod/service/impl/ProdPlanExecuteUserServiceImpl.java @@ -1,5 +1,6 @@ package com.os.mes.prod.service.impl; +import java.util.Collections; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; @@ -84,4 +85,14 @@ public class ProdPlanExecuteUserServiceImpl implements IProdPlanExecuteUserServi public int deleteProdPlanExecuteUserByObjId(Long objId) { return prodPlanExecuteUserMapper.deleteProdPlanExecuteUserByObjId(objId); } + + /** + * 通过planCode查询生产工单执行用户列表 + * @param planCode + * @return + */ + @Override + public List selectPlanExecuteUserListByPlanCode(String planCode) { + return prodPlanExecuteUserMapper.selectPlanExecuteUserListByPlanCode(planCode); + } } diff --git a/os-mes/src/main/resources/mapper/mes/prod/ProdPlanExecuteUserMapper.xml b/os-mes/src/main/resources/mapper/mes/prod/ProdPlanExecuteUserMapper.xml index 522ccb4..9cf03ac 100644 --- a/os-mes/src/main/resources/mapper/mes/prod/ProdPlanExecuteUserMapper.xml +++ b/os-mes/src/main/resources/mapper/mes/prod/ProdPlanExecuteUserMapper.xml @@ -208,4 +208,22 @@ #{objId} + + + \ No newline at end of file diff --git a/os-quartz/src/main/java/com/os/quartz/task/ERPTask.java b/os-quartz/src/main/java/com/os/quartz/task/ERPTask.java index e476dc0..d0d4091 100644 --- a/os-quartz/src/main/java/com/os/quartz/task/ERPTask.java +++ b/os-quartz/src/main/java/com/os/quartz/task/ERPTask.java @@ -59,6 +59,16 @@ public class ERPTask { portService.getProductionPlanTask(paramDto); } + public void ERPProdPlanPersonalDetailsTask(Long startDays, Long endDays) { + //获取生产计划管理个人详情 + String startDate = convertDaysToDateString(startDays, 0); + String endDate = convertDaysToDateString(endDays, 1); + ERPParamDto paramDto = new ERPParamDto(); + paramDto.setPlanStartTime(startDate); + paramDto.setPlanEndTime(endDate); + portService.getProdPlanPersonalDetailsTask(paramDto); + } + /** * 输出days天type的日期 * type: 0-减法;1-加法