diff --git a/mmpac/src/client/nccloud/web/mmpac/pmo/action/PmoToPlmAction.java b/mmpac/src/client/nccloud/web/mmpac/pmo/action/PmoToPlmAction.java index ea970e7..2a254ac 100644 --- a/mmpac/src/client/nccloud/web/mmpac/pmo/action/PmoToPlmAction.java +++ b/mmpac/src/client/nccloud/web/mmpac/pmo/action/PmoToPlmAction.java @@ -3,6 +3,7 @@ package nccloud.web.mmpac.pmo.action; import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.gson.Gson; +import nc.bs.dao.BaseDAO; import nc.bs.dao.DAOException; import nc.bs.framework.common.InvocationInfoProxy; import nc.bs.framework.common.NCLocator; @@ -11,12 +12,9 @@ import nc.bs.logging.Logger; import nc.bs.trade.business.HYPubBO; import nc.bs.trade.business.HYSuperDMO; import nc.bs.uapbd.util.MyHelper; -import nc.itf.mmpac.pickm.IPickmQueryService; import nc.itf.mmpac.pmo.pac0002.IPMOQueryService; -import nc.util.mmf.framework.base.MMValueCheck; import nc.vo.bd.defdoc.DefdocVO; import nc.vo.cmp.util.StringUtils; -import nc.vo.mmpac.pickm.entity.AggPickmVO; import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO; import nc.vo.mmpac.pmo.pac0002.entity.PMOHeadVO; import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO; @@ -24,14 +22,10 @@ import nc.vo.org.OrgVO; import nc.vo.pub.BusinessException; import nc.vo.util.CloneUtil; import nccloud.api.rest.utils.ResultMessageUtil; -import nccloud.dto.mmpac.pickm.pub.entity.PickmQueryInfoDTO; -import nccloud.framework.core.exception.ExceptionUtils; -import nccloud.framework.core.json.IJson; -import nccloud.framework.service.ServiceLocator; import nccloud.framework.web.action.itf.ICommonAction; import nccloud.framework.web.container.IRequest; import nccloud.framework.web.json.JsonFactory; -import nccloud.web.codeplatform.framework.action.base.BaseAction; +import nccloud.web.mmpub.pub.resexp.PfResumeExceptionNccUtils; import org.apache.http.client.config.CookieSpecs; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.HttpGet; @@ -49,7 +43,7 @@ import java.util.List; import java.util.Map; /** - * 系统将生产订单类型为“内配订单 ”的生产订单按照物料编码+项目号向PLM 传递设计任务, PLM 方接收后根据项目号,与成套产品设计任务挂载到相同位置。 + * 内配订单手动推PLM */ public class PmoToPlmAction implements ICommonAction { @@ -64,35 +58,44 @@ public class PmoToPlmAction implements ICommonAction { // 生产订单按照物料编码+项目号向PLM 传递设计任务 private String pmourl = "/sipmweb/api/bip/createProduct"; - private Map configParams; + + public BaseDAO dao; + + public BaseDAO getDao() { + if (dao == null) { + dao = new BaseDAO(); + } + return dao; + } + @Override public Object doAction(IRequest iRequest) { String json = iRequest.read(); - Logger.info("busiParam:" + json); + Logger.error("busiParam:" + json); Map paraMap = (Map) JsonFactory.create().fromJson(json, Map.class); try { // 获取主键 - String[] pks = (String[]) paraMap.get("pks"); - PMOAggVO[] pmoAggVOS = ((IPMOQueryService) NCLocator.getInstance().lookup(IPMOQueryService.class)).queryByPks(pks); + List pkList = (List) paraMap.get("pks"); + String[] pks = pkList.toArray(new String[0]); + PMOAggVO[] pmoAggVOS = NCLocator.getInstance().lookup(IPMOQueryService.class).queryByPks(pks); configParams = getConfigParams("Dldz-config"); PMOAggVO[] cloneOrderVOS = (PMOAggVO[]) CloneUtil.deepClone(pmoAggVOS); // 检查并筛选生产订单 List filteredOrders = checkAndFilterBillSrcOrg(cloneOrderVOS); if (filteredOrders.isEmpty()) { - return ResultMessageUtil.toJSON(filteredOrders, "非内配订单无法传递设计任务"); + throw new BusinessException("非内配订单无法传递设计任务"); } // 推送到思普PLM系统 - return pushToRZMOM(filteredOrders); + return pushToSpPlm(filteredOrders); - }catch (Exception e) { - e.printStackTrace(); + } catch (Exception e) { + return PfResumeExceptionNccUtils.handleResumeException(e); } - return null; } - private Object pushToRZMOM(List array) throws BusinessException, IOException { + private Object pushToSpPlm(List array) throws BusinessException, IOException { List> requestList = new ArrayList<>(); List> resultList = new ArrayList<>(); @@ -122,23 +125,27 @@ public class PmoToPlmAction implements ICommonAction { Object no = hybo.findColValue("bd_material", "code", "pk_material = '" + itemVO.getCmaterialvid() + "' "); Object name = hybo.findColValue("bd_material", "name", "pk_material = '" + itemVO.getCmaterialvid() + "' "); - Object projectName = hybo.findColValue("bd_project", "projectName", " pk_project = '" + itemVO.getCprojectid() + "' "); Object GSDM = hybo.findColValue("org_factory", "code", " pk_factory = '" + parentVO.getPk_org() + "' "); + Map projectMap = MyHelper.getMapValByCondition("bd_project", "project_code,project_name", + "pk_project = '" + itemVO.getCprojectid() + "' "); request.put("no", no); request.put("name", name); - request.put("ASUSER34", projectName); + if (!projectMap.isEmpty()) { + request.put("aa003", projectMap.get("project_code")); + request.put("asuser34", projectMap.get("project_name")); + } - request.put("ASUSER28", itemVO.getVfirstcode()); - request.put("AB012", itemVO.getNastnum()); + request.put("asuser28", itemVO.getVfirstcode()); + request.put("ab012", itemVO.getNastnum()); - request.put("GSDM", GSDM); - request.put("MATERIALSISSUEDATE", itemVO.getVdef17()); - request.put("MAINASSISTMATERIALSDATE", itemVO.getVdef18()); - request.put("ASSISTMATERIALSDATE", itemVO.getVdef19()); - request.put("DRAWINGPICKINGDATE", itemVO.getVdef20()); // 替换为实际字段名,如 getVdef20() + request.put("gsdm", GSDM); + request.put("materialsissuedate", itemVO.getVdef17()); + request.put("mainassistmaterialsdate", itemVO.getVdef18()); + request.put("assistmaterialsdate", itemVO.getVdef19()); + request.put("drawingpickingdate", itemVO.getVdef20()); // 替换为实际字段名,如 getVdef20() // 将组装好的 Map 添加到结果列表 requestList.add(request); } @@ -165,7 +172,11 @@ public class PmoToPlmAction implements ICommonAction { Map result = gson.fromJson(responseString, Map.class); if (!"true".equals(result.get("success").toString())) { throw new BusinessException(result.get("msg").toString()); - }else{ + } else { + // 调整PLM传输状态 + String updateSql = "update mm_pmo set def13 = 'Y' where cpmohid = '[cpmohid]'"; + updateSql = updateSql.replace("[cpmohid]", parentVO.getPrimaryKey()); + getDao().executeUpdate(updateSql); resultList.add(result); } @@ -186,9 +197,11 @@ public class PmoToPlmAction implements ICommonAction { if (MyHelper.checkIfDldzOrg(orgCode, configParams)) { continue; } + String ctrantypeid = pmoAggVO.getParentVO().getCtrantypeid(); + String groupId = pmoAggVO.getParentVO().getPk_group(); Object pk_billtypecode = hybo.findColValue("bd_billtype", "pk_billtypecode", " istransaction = 'Y' and nvl ( islock, 'N' ) = 'N' and parentbilltype = '55A2' and pk_group = '" - + InvocationInfoProxy.getInstance().getGroupId() + "' and pk_billtypeid = '" + pmoAggVO.getParentVO().getCtrantypeid() + "' "); - if (pk_billtypecode.equals("55A2-Cxx-08")) { + + groupId + "' and pk_billtypeid = '" + ctrantypeid + "' "); + if ("55A2-Cxx-08".equals(pk_billtypecode)) { filteredOrders.add(pmoAggVO); } }