内配订单手动推PLM
This commit is contained in:
parent
44552c4e40
commit
7ab84905c1
|
@ -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<String, String> 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<String, Object> 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<String> pkList = (List<String>) 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<PMOAggVO> 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<PMOAggVO> array) throws BusinessException, IOException {
|
||||
private Object pushToSpPlm(List<PMOAggVO> array) throws BusinessException, IOException {
|
||||
List<Map<String, Object>> requestList = new ArrayList<>();
|
||||
|
||||
List<Map<String, Object>> 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<String, Object> 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);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue