diff --git a/src/main/java/com/spring/ifs/api/BomApi.java b/src/main/java/com/spring/ifs/api/BomApi.java index d0aec9c8..0864bf95 100644 --- a/src/main/java/com/spring/ifs/api/BomApi.java +++ b/src/main/java/com/spring/ifs/api/BomApi.java @@ -552,6 +552,7 @@ public class BomApi { String consumptionItem = inData.getConsumptionItem(); String createDate = DateUtils.getStringDate(new Date(), "yyyy-MM-dd")+"-00.00.00"; String lastActivityDate = DateUtils.getStringDate(new Date(), "yyyy-MM-dd")+"-00.00.00"; + String productFlag = inData.getProductFlag(); //入参 Map inParam = new HashMap<>(); //填充参数 @@ -566,14 +567,19 @@ public class BomApi { inParam.put("LINE_SEQUENCE", sequenceNo); // 序号 inParam.put("COMPONENT_PART", componentPart); // 子零件 inParam.put("QTY_PER_ASSEMBLY", qtyPerAssembly); // 单位用量 - inParam.put("ISSUE_TYPE", issueType); // 域 + if ("byProduct".equalsIgnoreCase(productFlag)) { + inParam.put("CONSUMPTION_ITEM", "Consumed"); // 消耗项目 + }else { + inParam.put("ISSUE_TYPE", issueType); // 生产属性 + inParam.put("CONSUMPTION_ITEM", consumptionItem); // 消耗项目 + } + inParam.put("COMPONENT_SCRAP", componentScrap); // 报废 inParam.put("SHRINKAGE_FACTOR", shrinkageFactor); // 损耗率 inParam.put("NOTE_TEXT", noteText); // 备注 inParam.put("OPERATION_NO", operationNo); // 工序 inParam.put("ISSUE_PLANNED_SCRAP_DB", "TRUE"); // 固定值 inParam.put("ISSUE_OVERREPORTED_QTY_DB", "FALSE"); // 固定值 - inParam.put("CONSUMPTION_ITEM", consumptionItem); // 消耗项目 inParam.put("LEADTIME_OFFSET", "0"); // 固定值 inParam.put("PROMISE_PLANNED", "Promised"); // 固定值 inParam.put("PHANTOM_CONSUME", "Not Phantom Consume"); // 固定值 @@ -621,6 +627,7 @@ public class BomApi { String consumptionItem = inData.getConsumptionItem(); String createDate = DateUtils.getStringDate(new Date(), "yyyy-MM-dd")+"-00.00.00"; String lastActivityDate = DateUtils.getStringDate(new Date(), "yyyy-MM-dd")+"-00.00.00"; + String productFlag = inData.getProductFlag(); //入参 Map inParam = new HashMap<>(); //填充参数 @@ -629,11 +636,15 @@ public class BomApi { inParam.put("LINE_SEQUENCE", sequenceNo); // 序号 inParam.put("COMPONENT_PART", componentPart); // 子零件 inParam.put("QTY_PER_ASSEMBLY", qtyPerAssembly); // 单位用量 - inParam.put("ISSUE_TYPE", issueType); // 域 inParam.put("COMPONENT_SCRAP", componentScrap); // 报废 + if ("byProduct".equalsIgnoreCase(productFlag)) { + inParam.put("CONSUMPTION_ITEM", "Consumed"); // 消耗项目 + }else { + inParam.put("ISSUE_TYPE", issueType); // 生产属性 + inParam.put("CONSUMPTION_ITEM", consumptionItem); // 消耗项目 + } inParam.put("SHRINKAGE_FACTOR", shrinkageFactor); // 损耗率 inParam.put("NOTE_TEXT", noteText); // 备注 - inParam.put("CONSUMPTION_ITEM", consumptionItem); // 消耗项目 inParam.put("CREATE_DATE", createDate); // 创建时间 inParam.put("OPERATION_NO", operationNo); // 工序 inParam.put("LAST_ACTIVITY_DATE", lastActivityDate); // 最近更新时间 diff --git a/src/main/java/com/spring/ifs/api/BomApiTest.java b/src/main/java/com/spring/ifs/api/BomApiTest.java index 4d757cfa..0fc86908 100644 --- a/src/main/java/com/spring/ifs/api/BomApiTest.java +++ b/src/main/java/com/spring/ifs/api/BomApiTest.java @@ -551,6 +551,7 @@ public class BomApiTest { String consumptionItem = inData.getConsumptionItem(); String createDate = DateUtils.getStringDate(new Date(), "yyyy-MM-dd")+"-00.00.00"; String lastActivityDate = DateUtils.getStringDate(new Date(), "yyyy-MM-dd")+"-00.00.00"; + String productFlag = inData.getProductFlag(); //入参 Map inParam = new HashMap<>(); //填充参数 @@ -565,14 +566,18 @@ public class BomApiTest { inParam.put("LINE_SEQUENCE", sequenceNo); // 序号 inParam.put("COMPONENT_PART", componentPart); // 子零件 inParam.put("QTY_PER_ASSEMBLY", qtyPerAssembly); // 单位用量 - inParam.put("ISSUE_TYPE", issueType); // 域 + if ("byProduct".equalsIgnoreCase(productFlag)) { + inParam.put("CONSUMPTION_ITEM", "Consumed"); // 消耗项目 + }else { + inParam.put("ISSUE_TYPE", issueType); // 生产属性 + inParam.put("CONSUMPTION_ITEM", consumptionItem); // 消耗项目 + } inParam.put("COMPONENT_SCRAP", componentScrap); // 报废 inParam.put("SHRINKAGE_FACTOR", shrinkageFactor); // 损耗率 inParam.put("NOTE_TEXT", noteText); // 备注 inParam.put("OPERATION_NO", operationNo); // 工序 inParam.put("ISSUE_PLANNED_SCRAP_DB", "TRUE"); // 固定值 inParam.put("ISSUE_OVERREPORTED_QTY_DB", "FALSE"); // 固定值 - inParam.put("CONSUMPTION_ITEM", consumptionItem); // 消耗项目 inParam.put("LEADTIME_OFFSET", "0"); // 固定值 inParam.put("PROMISE_PLANNED", "Promised"); // 固定值 inParam.put("PHANTOM_CONSUME", "Not Phantom Consume"); // 固定值 @@ -620,6 +625,7 @@ public class BomApiTest { String consumptionItem = inData.getConsumptionItem(); String createDate = DateUtils.getStringDate(new Date(), "yyyy-MM-dd")+"-00.00.00"; String lastActivityDate = DateUtils.getStringDate(new Date(), "yyyy-MM-dd")+"-00.00.00"; + String productFlag = inData.getProductFlag(); //入参 Map inParam = new HashMap<>(); //填充参数 @@ -628,11 +634,15 @@ public class BomApiTest { inParam.put("LINE_SEQUENCE", sequenceNo); // 序号 inParam.put("COMPONENT_PART", componentPart); // 子零件 inParam.put("QTY_PER_ASSEMBLY", qtyPerAssembly); // 单位用量 - inParam.put("ISSUE_TYPE", issueType); // 域 + if ("byProduct".equalsIgnoreCase(productFlag)) { + inParam.put("CONSUMPTION_ITEM", "Consumed"); // 消耗项目 + }else { + inParam.put("ISSUE_TYPE", issueType); // 生产属性 + inParam.put("CONSUMPTION_ITEM", consumptionItem); // 消耗项目 + } inParam.put("COMPONENT_SCRAP", componentScrap); // 报废 inParam.put("SHRINKAGE_FACTOR", shrinkageFactor); // 损耗率 inParam.put("NOTE_TEXT", noteText); // 备注 - inParam.put("CONSUMPTION_ITEM", consumptionItem); // 消耗项目 inParam.put("CREATE_DATE", createDate); // 创建时间 inParam.put("OPERATION_NO", operationNo); // 工序 inParam.put("LAST_ACTIVITY_DATE", lastActivityDate); // 最近更新时间 diff --git a/src/main/java/com/spring/ifs/data/BomItem.java b/src/main/java/com/spring/ifs/data/BomItem.java index 931f364d..6c9a3c07 100644 --- a/src/main/java/com/spring/ifs/data/BomItem.java +++ b/src/main/java/com/spring/ifs/data/BomItem.java @@ -19,6 +19,7 @@ public class BomItem extends BomAlternative { private String consumptionItem;// 消耗项目 private String operationNo;// 工序 private String histType;// 类型 + private String productFlag; public BomItem() { super(); @@ -104,4 +105,11 @@ public class BomItem extends BomAlternative { this.histType = histType; } + public String getProductFlag() { + return productFlag; + } + + public void setProductFlag(String productFlag) { + this.productFlag = productFlag; + } } diff --git a/src/main/java/com/spring/modules/Tooling/service/impl/ToolServiceImpl.java b/src/main/java/com/spring/modules/Tooling/service/impl/ToolServiceImpl.java index f8ed5677..d173806f 100644 --- a/src/main/java/com/spring/modules/Tooling/service/impl/ToolServiceImpl.java +++ b/src/main/java/com/spring/modules/Tooling/service/impl/ToolServiceImpl.java @@ -1,6 +1,9 @@ package com.spring.modules.Tooling.service.impl; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.spring.ifs.api.IfsServer; +import com.spring.ifs.bean.ToolServiceBean; import com.spring.modules.Tooling.dao.BaseConfigDao; import com.spring.modules.Tooling.data.*; import com.spring.modules.Tooling.dao.ToolDao; @@ -12,6 +15,10 @@ import com.spring.modules.base.utils.DateUtils; import com.spring.modules.base.utils.HttpClientUtil; import com.spring.modules.base.utils.ResponseData; import com.spring.modules.report.dao.ProcedureDao; +import com.spring.modules.sys.dao.SysUserDao; +import com.spring.modules.sys.entity.SysUserEntity; +import ifs.fnd.ap.Server; +import org.apache.shiro.SecurityUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -38,11 +45,17 @@ public class ToolServiceImpl implements ToolService { private ProcedureDao procedureDao; @Autowired private BaseConfigDao baseConfigDao; + @Autowired + private ToolServiceBean toolServiceBean; + @Autowired + private SysUserDao sysUserDao; @Value("${ifs-api.api-url}") private String apiUrl; @Value("${ifs-control.control-flag}") private Boolean controlFlag; + @Autowired + private IfsServer ifsServer; @Override public List getToolInfoList(IfsTool inData) { @@ -135,13 +148,25 @@ public class ToolServiceImpl implements ToolService { BeanUtils.copyProperties(inData, ifsToolData); //2.校验存在调用接口 if (controlFlag) { - String toolURL = apiUrl + "/tool/ifs/syncToolDataToIfs"; + /*String toolURL = apiUrl + "/tool/ifs/syncToolDataToIfs"; ResponseData toolResponse = HttpClientUtil.doPostByRawWithPLM(toolURL, ifsToolData); if (!"200".equals(toolResponse.getCode())) { throw new RuntimeException("IFS Tool新增异常:" + toolResponse.getMsg()); + }*/ + //获取当前操作的账号 + String username = ((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUsername(); + SysUserEntity ifsUser = sysUserDao.selectOne(new QueryWrapper().eq("username", username)); + if (ifsUser == null || !org.apache.commons.lang3.StringUtils.isNotBlank(ifsUser.getIfsUsername()) || !org.apache.commons.lang3.StringUtils.isNotBlank(ifsUser.getIfsPassword())) { + throw new RuntimeException("获取用户的IFS账号密码为空值!"); } + String ifsUsername = ifsUser.getIfsUsername(); + String ifsPassword = ifsUser.getIfsPassword(); + //获取链接 + Server srv = ifsServer.getIfsServer(ifsUsername, ifsPassword); + //调用新的api方法 + Map returnMap = toolServiceBean.syncToolHeader(srv, ifsToolData); // 更新 ifs_row_id ifs_row_version - String objStr = String.valueOf(toolResponse.getObj()); + String objStr = returnMap.get("objStr"); ToolInfo ifsTool = JSON.parseObject(objStr, ToolInfo.class); inData.setIfsRowId(ifsTool.getIfsRowId()); inData.setIfsRowVersion(ifsTool.getIfsRowVersion()); @@ -150,10 +175,11 @@ public class ToolServiceImpl implements ToolService { //属性拷贝 BeanUtils.copyProperties(inData, toolInstance); toolInstance.setToolInstance(toolId); - toolURL = apiUrl + "/tool/ifs/removeToolInstanceToIfs"; - toolResponse = HttpClientUtil.doPostByRawWithPLM(toolURL, toolInstance); - if (!"200".equals(toolResponse.getCode())) { - throw new RuntimeException("IFS ToolInstance新增异常:" + toolResponse.getMsg()); + //调用api 删除已经产生的默认工具实例 + //调用新的api方法 + Map removeMap = toolServiceBean.removeToolInstance(srv, toolInstance); + if (!"200".equals(removeMap.get("resultCode"))) { + throw new RuntimeException("IFS ToolInstance新增异常:" + removeMap.get("resultMsg")); } //2.调用api处理属性部分的api数据 diff --git a/src/main/java/com/spring/modules/part/entity/APIEntity/BomIfsItem.java b/src/main/java/com/spring/modules/part/entity/APIEntity/BomIfsItem.java index 43d002ed..6a85b20c 100644 --- a/src/main/java/com/spring/modules/part/entity/APIEntity/BomIfsItem.java +++ b/src/main/java/com/spring/modules/part/entity/APIEntity/BomIfsItem.java @@ -25,6 +25,7 @@ public class BomIfsItem { private String issueToLoc; // 发料库位 private String operationNo; // 工序id private String consumptionItem; // 消耗项目 + private String productFlag; public BomIfsItem() { super(); @@ -198,4 +199,12 @@ public class BomIfsItem { public void setHistType(String histType) { this.histType = histType; } + + public String getProductFlag() { + return productFlag; + } + + public void setProductFlag(String productFlag) { + this.productFlag = productFlag; + } }