lihao-箱变-流程生产订单和物料同步启源

This commit is contained in:
mzr 2025-10-12 22:23:30 +08:00
parent 0f2cd1c76d
commit 005f2a508b
3 changed files with 25 additions and 58 deletions

View File

@ -4,22 +4,16 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.serializer.SerializerFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import nc.bs.dao.BaseDAO; import nc.bs.dao.BaseDAO;
import nc.bs.dao.DAOException; import nc.bs.dao.DAOException;
import nc.bs.logging.Log; import nc.bs.logging.Log;
import nc.bs.logging.Logger; 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.bs.uapbd.util.MyHelper;
import nc.bs.uapbd.util.ThirdPartyPostRequestUtil; import nc.bs.uapbd.util.ThirdPartyPostRequestUtil;
import nc.itf.mmpac.pmo.pac0002.IPMOQueryService; import nc.itf.mmpac.pmo.pac0002.IPMOQueryService;
import nc.jdbc.framework.processor.ColumnProcessor; import nc.jdbc.framework.processor.ColumnProcessor;
import nc.jdbc.framework.processor.MapProcessor; import nc.jdbc.framework.processor.MapProcessor;
import nc.vo.bc.pmpub.project.ProjectHeadVO; import nc.vo.bc.pmpub.project.ProjectHeadVO;
import nc.vo.bd.defdoc.DefdocVO;
import nc.vo.cmp.util.StringUtils;
import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO; import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO;
import nc.vo.mmpac.pmo.pac0002.entity.PMOHeadVO; import nc.vo.mmpac.pmo.pac0002.entity.PMOHeadVO;
import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO; import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO;
@ -27,30 +21,21 @@ import nc.vo.org.OrgVO;
import nc.vo.pub.BusinessException; import nc.vo.pub.BusinessException;
import nc.vo.pub.lang.UFDateTime; import nc.vo.pub.lang.UFDateTime;
import nc.vo.sm.UserVO; import nc.vo.sm.UserVO;
import nc.vo.util.CloneUtil;
import nccloud.framework.service.ServiceLocator; import nccloud.framework.service.ServiceLocator;
import nccloud.framework.web.action.itf.ICommonAction; import nccloud.framework.web.action.itf.ICommonAction;
import nccloud.framework.web.container.IRequest; import nccloud.framework.web.container.IRequest;
import nccloud.framework.web.json.JsonFactory; import nccloud.framework.web.json.JsonFactory;
import nccloud.web.mmpub.pub.resexp.PfResumeExceptionNccUtils; 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;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
* ÄÚÅ䩵¥ÊÖ¯ÍÆPLM * 箱变-流程生产订单同步启源
*
* @author lihao
* @date 2025/10/11
*/ */
public class PmoToQmsAction implements ICommonAction { public class PmoToQmsAction implements ICommonAction {
@ -82,7 +67,7 @@ public class PmoToQmsAction implements ICommonAction {
if (configParams.isEmpty()) { if (configParams.isEmpty()) {
throw new BusinessException("Ïä±äµÄQMS½Ó¿ÚȱÉÙÅäÖÃ"); throw new BusinessException("Ïä±äµÄQMS½Ó¿ÚȱÉÙÅäÖÃ");
} }
return buildSyncData(pmoAggVOS); return buildSyncData(pmoAggVOS);
} catch (Exception e) { } catch (Exception e) {
return PfResumeExceptionNccUtils.handleResumeException(e); return PfResumeExceptionNccUtils.handleResumeException(e);
@ -102,8 +87,8 @@ public class PmoToQmsAction implements ICommonAction {
if (checkIfOrg(orgCode, configParams)) { if (checkIfOrg(orgCode, configParams)) {
continue; continue;
} }
if(vo.getChildrenVO().length >=0 ){ if (vo.getChildrenVO().length >= 0) {
if(vo.getChildrenVO()[0].getAttributeValue("vdef32").equals("Y")){ if (null != vo.getChildrenVO()[0].getAttributeValue("vdef32") && vo.getChildrenVO()[0].getAttributeValue("vdef32").equals("Y")) {
continue; continue;
} }
} }
@ -203,14 +188,14 @@ public class PmoToQmsAction implements ICommonAction {
String baseUrl = configParams.get("qmsBaseUrl"); String baseUrl = configParams.get("qmsBaseUrl");
String requestUrl = baseUrl + reqUrl; String requestUrl = baseUrl + reqUrl;
logger.error("QMS-PMO-JM-url = " + requestUrl); logger.error("QMS-PMO-JM-url = " + requestUrl);
// String result = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, jsonStr); String result = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, jsonStr);
// JSONObject resultObj = JSONObject.parseObject(result); JSONObject resultObj = JSONObject.parseObject(result);
// logger.error("QMS-PMO-JM-res = " + result); logger.error("QMS-PMO-JM-res = " + result);
//
// if (!"true".equals(resultObj.getString("success"))) { if (!"true".equals(resultObj.getString("success"))) {
// logger.error("QMS-PMO-JM-error,result[" + resultObj.toJSONString() + "]"); logger.error("QMS-PMO-JM-error,result[" + resultObj.toJSONString() + "]");
// throw new BusinessException("QMS-PMO-JM-error:" + resultObj.getString("message")); throw new BusinessException("QMS-PMO-JM-error:" + resultObj.getString("message"));
// } }
} }
private boolean checkIfOrg(String code, Map<String, String> configParams) throws BusinessException { private boolean checkIfOrg(String code, Map<String, String> configParams) throws BusinessException {

View File

@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.serializer.SerializerFeature;
import nc.bs.bd.baseservice.ArrayClassConvertUtil;
import nc.bs.dao.BaseDAO; import nc.bs.dao.BaseDAO;
import nc.bs.dao.DAOException; import nc.bs.dao.DAOException;
import nc.bs.framework.common.NCLocator; import nc.bs.framework.common.NCLocator;
@ -13,48 +12,31 @@ import nc.bs.trade.business.HYPubBO;
import nc.bs.trade.business.HYSuperDMO; import nc.bs.trade.business.HYSuperDMO;
import nc.bs.uapbd.util.MyHelper; import nc.bs.uapbd.util.MyHelper;
import nc.bs.uapbd.util.ThirdPartyPostRequestUtil; import nc.bs.uapbd.util.ThirdPartyPostRequestUtil;
import nc.itf.scmpub.reference.uap.bd.material.MaterialPubService;
import nc.jdbc.framework.processor.MapProcessor; import nc.jdbc.framework.processor.MapProcessor;
import nc.pubitf.uapbd.IMaterialPubService; import nc.pubitf.uapbd.IMaterialPubService;
import nc.util.mmf.framework.base.MMValueCheck;
import nc.vo.bd.defdoc.DefdocVO; import nc.vo.bd.defdoc.DefdocVO;
import nc.vo.bd.material.MaterialVO; import nc.vo.bd.material.MaterialVO;
import nc.vo.bd.material.marbasclass.MarBasClassVO; import nc.vo.bd.material.marbasclass.MarBasClassVO;
import nc.vo.bd.material.plan.MaterialPlanVO; import nc.vo.bd.material.plan.MaterialPlanVO;
import nc.vo.bd.material.stock.MaterialStockVO;
import nc.vo.cmp.util.StringUtils;
import nc.vo.ml.NCLangRes4VoTransl;
import nc.vo.org.OrgVO; import nc.vo.org.OrgVO;
import nc.vo.pub.BusinessException; import nc.vo.pub.BusinessException;
import nccloud.baseapp.core.log.NCCForPrintLogger;
import nccloud.framework.core.exception.ExceptionUtils; import nccloud.framework.core.exception.ExceptionUtils;
import nccloud.framework.core.io.WebFile;
import nccloud.framework.core.io.WebFileDisposition;
import nccloud.framework.core.json.IJson; import nccloud.framework.core.json.IJson;
import nccloud.framework.web.action.itf.ICommonAction; import nccloud.framework.web.action.itf.ICommonAction;
import nccloud.framework.web.container.IRequest; import nccloud.framework.web.container.IRequest;
import nccloud.framework.web.json.JsonFactory; import nccloud.framework.web.json.JsonFactory;
import org.apache.http.client.config.CookieSpecs;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.util.EntityUtils;
import org.owasp.esapi.ESAPI;
import java.io.*; import java.util.HashMap;
import java.text.SimpleDateFormat; import java.util.List;
import java.util.*; import java.util.Map;
import java.util.Objects;
import java.util.stream.Stream; import java.util.stream.Stream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/** /**
* »ñÈ¡ÎïÁÏPLMÎļþ * Ïä±ä-ÎïÁÏͬ²½ÆôÔ´
* *
* @author mzr * @author lihao
* @date 2025/8/4 * @date 2025/10/8
*/ */
public class MaterialPushToQmsAction implements ICommonAction { public class MaterialPushToQmsAction implements ICommonAction {
private static final String LOG_INFO_NAME = "qyMesLog"; private static final String LOG_INFO_NAME = "qyMesLog";
@ -68,10 +50,10 @@ public class MaterialPushToQmsAction implements ICommonAction {
HYPubBO hyPub = new HYPubBO(); HYPubBO hyPub = new HYPubBO();
IJson json = JsonFactory.create(); IJson json = JsonFactory.create();
Map<String,Object> info = json.fromJson(read, Map.class); Map<String, Object> info = json.fromJson(read, Map.class);
try { try {
String materialCodeArr = (String) info.get("pk_material"); // 获取所有物料编码 String materialCodeArr = (String) info.get("pk_material"); // 获取所有物料编码
if (materialCodeArr == null ) { if (materialCodeArr == null) {
ExceptionUtils.wrapBusinessException("物料不能为空"); ExceptionUtils.wrapBusinessException("物料不能为空");
} }
// String[] pks = materialCodeArr.split(","); // String[] pks = materialCodeArr.split(",");

View File

@ -8,7 +8,7 @@
<action> <action>
<name>uapbd.material.pushtoqms</name> <name>uapbd.material.pushtoqms</name>
<label>物料-下载PLM物料文件</label> <label>物料推送qms</label>
<clazz>nccloud.web.uapbd.material.action.MaterialPushToQmsAction</clazz> <clazz>nccloud.web.uapbd.material.action.MaterialPushToQmsAction</clazz>
</action> </action>
</actions> </actions>