Compare commits
2 Commits
74eea66f2c
...
2f935db45f
Author | SHA1 | Date |
---|---|---|
|
2f935db45f | |
|
ce4ce8d55b |
|
@ -0,0 +1,101 @@
|
||||||
|
//
|
||||||
|
// Source code recreated from a .class file by IntelliJ IDEA
|
||||||
|
// (powered by FernFlower decompiler)
|
||||||
|
//
|
||||||
|
|
||||||
|
package nc.pubimpl.ic.m45.m25;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import nc.bs.ic.pub.rewrite.RewriteBPTemplate;
|
||||||
|
import nc.bs.logging.Log;
|
||||||
|
import nc.bs.logging.Logger;
|
||||||
|
import nc.bs.uapbd.util.MyHelper;
|
||||||
|
import nc.bs.uapbd.util.ThirdPartyPostRequestUtil;
|
||||||
|
import nc.vo.ic.m45.entity.PurchaseInBodyVO;
|
||||||
|
import nc.vo.ic.pub.util.NCBaseTypeUtils;
|
||||||
|
import nc.vo.ml.NCLangRes4VoTransl;
|
||||||
|
import nc.vo.pub.BusinessException;
|
||||||
|
import nc.vo.pub.lang.UFDouble;
|
||||||
|
import nccloud.baseapp.core.log.NCCForUAPLogger;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class Bill45For25Rewrite extends RewriteBPTemplate<PurchaseInBodyVO> {
|
||||||
|
private static final Log logger = Log.getInstance("qyMesLog");
|
||||||
|
private static final String reqUrl = "/IF_QyErpApi.ashx?action=addRkdFpxx";
|
||||||
|
|
||||||
|
public Bill45For25Rewrite() {
|
||||||
|
super(PurchaseInBodyVO.class);
|
||||||
|
this.additionalFields(new String[]{"nnum"});
|
||||||
|
this.addUpdateField("nsignnum");
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void reWriteAfterProcess(PurchaseInBodyVO[] vos) throws BusinessException {
|
||||||
|
UFDouble dvalue = null;
|
||||||
|
UFDouble num = null;
|
||||||
|
UFDouble nsignnum = null;
|
||||||
|
|
||||||
|
for (PurchaseInBodyVO vo : vos) {
|
||||||
|
num = NCBaseTypeUtils.abs(vo.getNnum());
|
||||||
|
nsignnum = NCBaseTypeUtils.abs(vo.getNsignnum());
|
||||||
|
dvalue = NCBaseTypeUtils.sub(num, new UFDouble[]{nsignnum});
|
||||||
|
if (NCBaseTypeUtils.isLtZero(dvalue)) {
|
||||||
|
throw new BusinessException(NCLangRes4VoTransl.getNCLangRes().getStrByID("4008002_0", "04008002-0092"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
super.reWriteAfterProcess(vos);
|
||||||
|
this.syncQyMes(vos);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 同步启源的累计开票数量
|
||||||
|
*
|
||||||
|
* @param vos
|
||||||
|
* @throws BusinessException
|
||||||
|
*/
|
||||||
|
protected void syncQyMes(PurchaseInBodyVO[] vos) throws BusinessException {
|
||||||
|
JSONArray contentParam = new JSONArray();
|
||||||
|
for (PurchaseInBodyVO vo : vos) {
|
||||||
|
// 启源入库单行主键
|
||||||
|
String vbdef20 = vo.getVbdef20();
|
||||||
|
if (vbdef20 == null || vbdef20.isEmpty() || "~".equals(vbdef20)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String nsignnum = vo.getNsignnum().toString();
|
||||||
|
JSONObject param = new JSONObject();
|
||||||
|
param.put("rkqdid", vbdef20); // 启源入库单行主键
|
||||||
|
param.put("ydyfpsl", nsignnum);// 累计开票数量
|
||||||
|
contentParam.add(param);
|
||||||
|
}
|
||||||
|
if (!contentParam.isEmpty()) {
|
||||||
|
JSONObject data = new JSONObject();
|
||||||
|
data.put("batchid", System.currentTimeMillis());
|
||||||
|
data.put("Content", contentParam);
|
||||||
|
pushData(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 推送同步数据
|
||||||
|
*/
|
||||||
|
private void pushData(JSONObject param) throws BusinessException {
|
||||||
|
Map<String, String> configParams = MyHelper.getConfigParams("jm-config", null);
|
||||||
|
String jsonStr = JSON.toJSONString(param);
|
||||||
|
logger.error("qyMes-purchasein-param = " + jsonStr);
|
||||||
|
NCCForUAPLogger.debug("qyMes-purchasein-param = " + jsonStr);
|
||||||
|
String baseUrl = configParams.get("qmsBaseUrl");
|
||||||
|
String requestUrl = baseUrl + reqUrl;
|
||||||
|
logger.error("qyMes-purchasein-url = " + requestUrl);
|
||||||
|
String result = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, jsonStr);
|
||||||
|
NCCForUAPLogger.debug("qyMes-purchasein-result = " + result);
|
||||||
|
JSONObject resultObj = JSONObject.parseObject(result);
|
||||||
|
logger.error("qyMes-purchasein-res = " + result);
|
||||||
|
|
||||||
|
if (!"true".equals(resultObj.getString("success"))) {
|
||||||
|
Logger.error("qyMes-purchasein-error,result[" + resultObj.toJSONString() + "]");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,10 +1,8 @@
|
||||||
package nc.bs.mmpac.pmo.pac0002.bp.rule;
|
package nc.bs.mmpac.pmo.pac0002.bp.rule;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONArray;
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import nc.bs.dao.BaseDAO;
|
|
||||||
import nc.bs.dao.DAOException;
|
import nc.bs.dao.DAOException;
|
||||||
import nc.bs.framework.common.InvocationInfoProxy;
|
import nc.bs.framework.common.InvocationInfoProxy;
|
||||||
import nc.bs.logging.Log;
|
import nc.bs.logging.Log;
|
||||||
|
@ -12,8 +10,6 @@ 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.impl.pubapp.pattern.rule.IRule;
|
import nc.impl.pubapp.pattern.rule.IRule;
|
||||||
import nc.jdbc.framework.processor.MapProcessor;
|
|
||||||
import nc.uif.pub.exception.UifException;
|
|
||||||
import nc.vo.bd.defdoc.DefdocVO;
|
import nc.vo.bd.defdoc.DefdocVO;
|
||||||
import nc.vo.cmp.util.StringUtils;
|
import nc.vo.cmp.util.StringUtils;
|
||||||
import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO;
|
import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO;
|
||||||
|
@ -42,6 +38,8 @@ import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BIP 系统将生产订单类型为“内配订单 ”的生产订单按照物料编码+项目号向PLM 传递设计任务, PLM 方接收后根据项目号,与成套产品设计任务挂载到相同位置。
|
* BIP 系统将生产订单类型为“内配订单 ”的生产订单按照物料编码+项目号向PLM 传递设计任务, PLM 方接收后根据项目号,与成套产品设计任务挂载到相同位置。
|
||||||
|
*
|
||||||
|
* @author lihao
|
||||||
*/
|
*/
|
||||||
public class AfterApproveSyncPLMRule implements IRule<PMOAggVO> {
|
public class AfterApproveSyncPLMRule implements IRule<PMOAggVO> {
|
||||||
|
|
||||||
|
@ -58,6 +56,7 @@ public class AfterApproveSyncPLMRule implements IRule<PMOAggVO> {
|
||||||
|
|
||||||
|
|
||||||
private Map<String, String> configParams;
|
private Map<String, String> configParams;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void process(PMOAggVO[] pmoAggVOS) {
|
public void process(PMOAggVO[] pmoAggVOS) {
|
||||||
if (ArrayUtil.isEmpty(pmoAggVOS)) {
|
if (ArrayUtil.isEmpty(pmoAggVOS)) {
|
||||||
|
@ -72,10 +71,10 @@ public class AfterApproveSyncPLMRule implements IRule<PMOAggVO> {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 推送到锐制系统
|
// 推送到思普PLM系统
|
||||||
pushToRZMOM(filteredOrders);
|
pushToRZMOM(filteredOrders);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logDl.error("同步生产订单到RZ系统失败: " + e.getMessage());
|
logDl.error("同步生产订单到SPPLM系统失败: " + e.getMessage());
|
||||||
ExceptionUtils.wrappException(e);
|
ExceptionUtils.wrappException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -99,7 +98,7 @@ public class AfterApproveSyncPLMRule implements IRule<PMOAggVO> {
|
||||||
if (itemVO != null) {
|
if (itemVO != null) {
|
||||||
// NO 产品品号 cmaterialvid 物料编码
|
// NO 产品品号 cmaterialvid 物料编码
|
||||||
// NAME 产品名称 name 物料名称
|
// NAME 产品名称 name 物料名称
|
||||||
// ASUSER34 项目名称 project_name 项目名称
|
// ASUSER34 项目名称 projectName 项目名称
|
||||||
// ASUSER28 生产计划号 vsrccode 来源单据号 销售订单号
|
// ASUSER28 生产计划号 vsrccode 来源单据号 销售订单号
|
||||||
// AB012 数量 nastnum 数量
|
// AB012 数量 nastnum 数量
|
||||||
// GSDM 公司代码
|
// GSDM 公司代码
|
||||||
|
@ -111,17 +110,16 @@ public class AfterApproveSyncPLMRule implements IRule<PMOAggVO> {
|
||||||
Object no = hybo.findColValue("bd_material", "code", "pk_material = '" + itemVO.getCmaterialvid() + "' ");
|
Object no = hybo.findColValue("bd_material", "code", "pk_material = '" + itemVO.getCmaterialvid() + "' ");
|
||||||
|
|
||||||
Object name = hybo.findColValue("bd_material", "name", "pk_material = '" + itemVO.getCmaterialvid() + "' ");
|
Object name = hybo.findColValue("bd_material", "name", "pk_material = '" + itemVO.getCmaterialvid() + "' ");
|
||||||
Object pk_project = hybo.findColValue("bd_project", "project_name", " pk_project = '" + itemVO.getCprojectid() + "' ");
|
Object projectName = hybo.findColValue("bd_project", "projectName", " pk_project = '" + itemVO.getCprojectid() + "' ");
|
||||||
|
|
||||||
Object GSDM = hybo.findColValue("org_factory", "code", " pk_factory = '" + parentVO.getPk_org() + "' ");
|
Object GSDM = hybo.findColValue("org_factory", "code", " pk_factory = '" + parentVO.getPk_org() + "' ");
|
||||||
|
|
||||||
request.put("no", no);
|
request.put("no", no);
|
||||||
|
|
||||||
request.put("name", name);
|
request.put("name", name);
|
||||||
|
|
||||||
request.put("ASUSER34", pk_project);
|
request.put("ASUSER34", projectName);
|
||||||
|
|
||||||
request.put("ASUSER28", itemVO.getVsrccode());
|
request.put("ASUSER28", itemVO.getVfirstcode());
|
||||||
request.put("AB012", itemVO.getNastnum());
|
request.put("AB012", itemVO.getNastnum());
|
||||||
|
|
||||||
request.put("GSDM", GSDM);
|
request.put("GSDM", GSDM);
|
||||||
|
@ -148,12 +146,12 @@ public class AfterApproveSyncPLMRule implements IRule<PMOAggVO> {
|
||||||
plmBaseUrl = configParams.get("plmBaseUrl");
|
plmBaseUrl = configParams.get("plmBaseUrl");
|
||||||
plmUser = configParams.get("plmUser");
|
plmUser = configParams.get("plmUser");
|
||||||
token = getToken();
|
token = getToken();
|
||||||
logDl.info("请求参数 :"+jsonArrayStr);
|
logDl.error("AfterApproveSyncPLMRule-param = " + jsonArrayStr);
|
||||||
String responseString = this.doPost(plmBaseUrl + pmourl, jsonArrayStr);
|
String responseString = this.doPost(plmBaseUrl + pmourl, jsonArrayStr);
|
||||||
logDl.info("返回结果 :"+responseString);
|
logDl.error("AfterApproveSyncPLMRule-res = " + responseString);
|
||||||
Gson gson = new Gson();
|
Gson gson = new Gson();
|
||||||
Map result = gson.fromJson(responseString, Map.class);
|
Map result = gson.fromJson(responseString, Map.class);
|
||||||
if (!result.get("success").toString().equals("true")) {
|
if (!"true".equals(result.get("success").toString())) {
|
||||||
throw new BusinessException(result.get("msg").toString());
|
throw new BusinessException(result.get("msg").toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -183,6 +181,7 @@ public class AfterApproveSyncPLMRule implements IRule<PMOAggVO> {
|
||||||
|
|
||||||
return filteredOrders;
|
return filteredOrders;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, String> getConfigParams(String code) {
|
public Map<String, String> getConfigParams(String code) {
|
||||||
Map<String, String> map = new HashMap<>();
|
Map<String, String> map = new HashMap<>();
|
||||||
String strWhere = " pk_defdoclist in (select pk_defdoclist from bd_defdoclist where code='[code]' and dr=0 ) and dr=0";
|
String strWhere = " pk_defdoclist in (select pk_defdoclist from bd_defdoclist where code='[code]' and dr=0 ) and dr=0";
|
||||||
|
@ -200,6 +199,7 @@ public class AfterApproveSyncPLMRule implements IRule<PMOAggVO> {
|
||||||
}
|
}
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String doPost(String requestUrl, String param) throws IOException {
|
private String doPost(String requestUrl, String param) throws IOException {
|
||||||
PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
|
PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
|
||||||
cm.setMaxTotal(500);
|
cm.setMaxTotal(500);
|
||||||
|
@ -221,8 +221,6 @@ public class AfterApproveSyncPLMRule implements IRule<PMOAggVO> {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取token
|
* 获取token
|
||||||
*/
|
*/
|
||||||
|
@ -239,6 +237,7 @@ public class AfterApproveSyncPLMRule implements IRule<PMOAggVO> {
|
||||||
}
|
}
|
||||||
return token;
|
return token;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String doGet(String requestUrl, Map<String, String> paramMap) throws IOException {
|
private String doGet(String requestUrl, Map<String, String> paramMap) throws IOException {
|
||||||
PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
|
PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
|
||||||
cm.setMaxTotal(5000);
|
cm.setMaxTotal(5000);
|
||||||
|
@ -267,4 +266,5 @@ public class AfterApproveSyncPLMRule implements IRule<PMOAggVO> {
|
||||||
get.releaseConnection();
|
get.releaseConnection();
|
||||||
return responseString;
|
return responseString;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue