优化艾普MES接口代码-物料+生产订单
This commit is contained in:
parent
2e3b7b6329
commit
0d448df7f2
|
@ -43,8 +43,8 @@ public class AfterApproveSyncEpicMesRule implements IRule<PMOAggVO> {
|
||||||
|
|
||||||
private static final Log obmlog = Log.getInstance(LOG_INFO_NAME);
|
private static final Log obmlog = Log.getInstance(LOG_INFO_NAME);
|
||||||
|
|
||||||
private static final String MES_PMO_URL = "/prj-v5-web/ext/api/workOrder";
|
private static final String pmoUrl = "/prj-v5-web/ext/api/workOrder";
|
||||||
private static final String MES_CODE_URL = "/prj-v5-web/ext/api/releaseNo";
|
private static final String codeUrl = "/prj-v5-web/ext/api/releaseNo";
|
||||||
|
|
||||||
private static final BaseDAO dao = new BaseDAO();
|
private static final BaseDAO dao = new BaseDAO();
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@ public class AfterApproveSyncEpicMesRule implements IRule<PMOAggVO> {
|
||||||
String responseString = null;
|
String responseString = null;
|
||||||
try {
|
try {
|
||||||
String baseUrl = SysParaInitQuery.getParaString("GLOBLE00000000000000", "EPICMESURL");
|
String baseUrl = SysParaInitQuery.getParaString("GLOBLE00000000000000", "EPICMESURL");
|
||||||
String requestUrl = baseUrl + MES_PMO_URL;
|
String requestUrl = baseUrl + pmoUrl;
|
||||||
responseString = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, param.toJSONString());
|
responseString = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, param.toJSONString());
|
||||||
obmlog.info(" °¬ÆÕMESϵͳÔʼ·µ»Ø: " + responseString);
|
obmlog.info(" °¬ÆÕMESϵͳÔʼ·µ»Ø: " + responseString);
|
||||||
|
|
||||||
|
@ -311,7 +311,7 @@ public class AfterApproveSyncEpicMesRule implements IRule<PMOAggVO> {
|
||||||
private void pushCodeData(JSONArray param) throws BusinessException {
|
private void pushCodeData(JSONArray param) throws BusinessException {
|
||||||
String baseUrl = SysParaInitQuery.getParaString("GLOBLE00000000000000", "EPICMESURL");
|
String baseUrl = SysParaInitQuery.getParaString("GLOBLE00000000000000", "EPICMESURL");
|
||||||
baseUrl = "http://192.168.55.39:8080";
|
baseUrl = "http://192.168.55.39:8080";
|
||||||
String requestUrl = baseUrl + MES_CODE_URL;
|
String requestUrl = baseUrl + codeUrl;
|
||||||
String result = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, param.toJSONString());
|
String result = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, param.toJSONString());
|
||||||
JSONObject resultObj = JSONObject.parseObject(result);
|
JSONObject resultObj = JSONObject.parseObject(result);
|
||||||
obmlog.error("AfterApproveSyncEpicMesRule-pushCodeData-req = " + result);
|
obmlog.error("AfterApproveSyncEpicMesRule-pushCodeData-req = " + result);
|
||||||
|
|
|
@ -5,18 +5,17 @@ import nc.bs.bd.baseservice.ArrayClassConvertUtil;
|
||||||
import nc.bs.businessevent.IBusinessEvent;
|
import nc.bs.businessevent.IBusinessEvent;
|
||||||
import nc.bs.businessevent.IBusinessListener;
|
import nc.bs.businessevent.IBusinessListener;
|
||||||
import nc.bs.businessevent.bd.BDCommonEvent;
|
import nc.bs.businessevent.bd.BDCommonEvent;
|
||||||
|
import nc.bs.dao.BaseDAO;
|
||||||
import nc.bs.logging.Logger;
|
import nc.bs.logging.Logger;
|
||||||
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.arap.goldentax.SysParaInitQuery;
|
import nc.itf.arap.goldentax.SysParaInitQuery;
|
||||||
|
import nc.jdbc.framework.processor.MapProcessor;
|
||||||
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.measdoc.MeasdocVO;
|
|
||||||
import nc.vo.org.FactoryVO;
|
import nc.vo.org.FactoryVO;
|
||||||
import nc.vo.pub.BusinessException;
|
import nc.vo.pub.BusinessException;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.math.RoundingMode;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
@ -57,29 +56,33 @@ public class MaterialToEpicMesListener implements IBusinessListener {
|
||||||
if (!MyHelper.checkIfDldzOrg(orgCode)) {
|
if (!MyHelper.checkIfDldzOrg(orgCode)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
// 字段值翻译
|
||||||
|
String pk_marbasclass = vo.getPk_marbasclass();
|
||||||
|
String mrlTypeCOde = MyHelper.transferField(MarBasClassVO.getDefaultTableName(), MarBasClassVO.CODE, MarBasClassVO.PK_MARBASCLASS, pk_marbasclass);
|
||||||
|
// 计量单位
|
||||||
|
String pkMaterial = vo.getPk_material();
|
||||||
|
Map unitMap = getUnitInfo(pkMaterial);
|
||||||
|
|
||||||
// 1=未启用;2=已启用;3=已停用;
|
// 1=未启用;2=已启用;3=已停用;
|
||||||
Integer enablestate = vo.getEnablestate();
|
Integer enablestate = vo.getEnablestate();
|
||||||
String statusCode = (3 == enablestate) ? "N" : "Y";
|
String statusCode = (3 == enablestate) ? "N" : "Y";
|
||||||
|
// 组装数据
|
||||||
JSONObject singleObj = new JSONObject();
|
JSONObject singleObj = new JSONObject();
|
||||||
singleObj.put("id", null);// 唯一标识(主键)
|
singleObj.put("id", null);// 唯一标识(主键)
|
||||||
singleObj.put("siteCode", null);// 工厂编码
|
singleObj.put("siteCode", orgCode);// 工厂编码 todo
|
||||||
singleObj.put("mrlCode", vo.getCode());// 物料编码
|
singleObj.put("mrlCode", vo.getCode());// 物料编码
|
||||||
singleObj.put("mrlName", vo.getName());// 物料名称
|
singleObj.put("mrlName", vo.getName());// 物料名称
|
||||||
String pkMeasdoc = vo.getPk_measdoc();
|
singleObj.put("unit", unitMap.get("unitName"));// 单位
|
||||||
String unitName = MyHelper.transferField(MeasdocVO.getDefaultTableName(), MeasdocVO.NAME, MeasdocVO.PK_MEASDOC, pkMeasdoc);
|
|
||||||
singleObj.put("unit", unitName);// 单位
|
|
||||||
singleObj.put("model", vo.getMaterialtype());// 型号
|
singleObj.put("model", vo.getMaterialtype());// 型号
|
||||||
singleObj.put("specification", vo.getMaterialspec());// 规格
|
singleObj.put("specification", vo.getMaterialspec());// 规格
|
||||||
singleObj.put("type", getType(eventType));// 类型(I:新增 U:修改 D:删除)
|
singleObj.put("type", getType(eventType));// 类型(I:新增 U:修改 D:删除)
|
||||||
singleObj.put("deputyUnit", null);// 副单位
|
singleObj.put("deputyUnit", unitMap.get("deputyUnitName"));// 副单位
|
||||||
singleObj.put("auditCode", "1");// 审核码
|
singleObj.put("auditCode", "1");// 审核码
|
||||||
singleObj.put("statusCode", statusCode);// 状态码(Y表示启用,N表示停用)
|
singleObj.put("statusCode", statusCode);// 状态码(Y表示启用,N表示停用)
|
||||||
singleObj.put("mrlTypeErp", "1");// 物料类型ERP(1:专用件,3:通用件)
|
singleObj.put("mrlTypeErp", "3");// 物料类型ERP(1:专用件,3:通用件)todo
|
||||||
String pk_marbasclass = vo.getPk_marbasclass();
|
|
||||||
String mrlTypeCOde = MyHelper.transferField(MarBasClassVO.getDefaultTableName(), MarBasClassVO.CODE, MarBasClassVO.PK_MARBASCLASS, pk_marbasclass);
|
|
||||||
singleObj.put("mrlType", mrlTypeCOde);// 物料分类编码
|
singleObj.put("mrlType", mrlTypeCOde);// 物料分类编码
|
||||||
singleObj.put("convertRate", "1");// 单位换算率
|
singleObj.put("convertRate", unitMap.getOrDefault("convertRate", "1"));// 单位换算率
|
||||||
singleObj.put("isCheck", "1");// 是否选中(1:是,0:否)
|
// singleObj.put("isCheck", "1");// 是否选中(1:是,0:否)
|
||||||
pushData(singleObj);
|
pushData(singleObj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -109,29 +112,16 @@ public class MaterialToEpicMesListener implements IBusinessListener {
|
||||||
return map.getOrDefault(eventType, "I");
|
return map.getOrDefault(eventType, "I");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
private Map getUnitInfo(String pkMaterial) throws BusinessException {
|
||||||
* 转换特殊字段 如 1/1 转换为小数 1.0
|
String sql = " select a.pk_measdoc, c.name unitName, b.pk_measdoc deputyUnit, d.name deputyUnitName, nvl(b.measrate, '1/1') measrate " +
|
||||||
*/
|
"from bd_material a " +
|
||||||
private String transferSpecialField(String field) {
|
"left join bd_materialconvert b on a.pk_material = b.pk_material " +
|
||||||
if (field == null || field.trim().isEmpty()) {
|
"left join bd_measdoc c on a.pk_measdoc = c.pk_measdoc " +
|
||||||
return null;
|
"left join bd_measdoc d on b.pk_measdoc = d.pk_measdoc " +
|
||||||
}
|
"where a.pk_material = '" + pkMaterial + "' ";
|
||||||
String[] split = field.split("/");
|
Map map = (Map) new BaseDAO().executeQuery(sql, new MapProcessor());
|
||||||
if (split.length == 2) {
|
map.put("convertRate", MyHelper.transferSpecialField(map.get("measrate") + ""));
|
||||||
String numStr = split[0].trim();
|
return map;
|
||||||
String denStr = split[1].trim();
|
|
||||||
if (denStr.equals("0")) {
|
|
||||||
return "0.00"; // 分母不能为零
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
BigDecimal numerator = new BigDecimal(numStr);
|
|
||||||
BigDecimal denominator = new BigDecimal(denStr);
|
|
||||||
return numerator.divide(denominator, 2, RoundingMode.HALF_UP).toString();
|
|
||||||
} catch (NumberFormatException e) {
|
|
||||||
return field; // 非法数字,返回原字段
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return field;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -87,7 +87,7 @@ public class MyHelper {
|
||||||
* 转换特殊字段 如 1/1 转换为小数 1.0
|
* 转换特殊字段 如 1/1 转换为小数 1.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private String transferSpecialField(String field) {
|
public static String transferSpecialField(String field) {
|
||||||
if (field == null || field.trim().isEmpty()) {
|
if (field == null || field.trim().isEmpty()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue