流程生产订单修改RZ系统的错误字段映射,修改MES系统的错误字段映射

This commit is contained in:
张明 2025-05-18 15:15:50 +08:00
parent 1f3d4f0bfd
commit 069da120aa
6 changed files with 139 additions and 136 deletions

View File

@ -51,7 +51,7 @@ public class SignBP implements ISignBP<SaleOutVO>, ISignRuleProvider<SaleOutVO>
processor.addAfterRule(new SaleOutProceedsRuleCG());
processor.addAfterRule(new MobAfterSignMessageRule());
// 销售出库 签字后 同步到MES金思维系统
processor.addAfterRule(new AfterSigningSynchronizeRule());
processor.addAfterRule(new AfterSigningSynchronizeRuleMES());
// 盘点审批后传MES
// 销售出库 签字后 同步到锐制

View File

@ -3,14 +3,24 @@ package nc.bs.ic.m4c.sign.rule;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yonyou.cloud.utils.StringUtils;
import nc.bs.dao.BaseDAO;
import nc.bs.framework.common.NCLocator;
import nc.bs.logging.Log;
import nc.impl.pubapp.pattern.rule.IRule;
import nc.jdbc.framework.processor.ColumnProcessor;
import nc.vo.bd.cust.CustomerVO;
import nc.vo.bd.material.MaterialVO;
import nc.vo.bd.material.measdoc.MeasdocVO;
import nc.vo.bd.psn.PsndocVO;
import nc.vo.bd.rack.RackVO;
import nc.vo.bd.supplier.SupplierVO;
import nc.vo.ic.m4c.entity.SaleOutBodyVO;
import nc.vo.ic.m4c.entity.SaleOutHeadVO;
import nc.vo.ic.m4c.entity.SaleOutVO;
import nc.vo.org.DeptVO;
import nc.vo.pub.BusinessException;
import nc.vo.pub.lang.UFDate;
import nc.vo.pubapp.pattern.pub.SqlBuilder;
import nccloud.pubift.commen.itf.utils.IHttpPostOtherSys;
import java.text.SimpleDateFormat;
@ -19,13 +29,14 @@ import java.text.SimpleDateFormat;
/**
* 销售出库签字后传MES金思维系统
*/
public class AfterSigningSynchronizeRule implements IRule<SaleOutVO> {
public class AfterSigningSynchronizeRuleMES implements IRule<SaleOutVO> {
private static final String SALE_OUT_URL = "/GTHINKING/AjaxService/N_MISPRO/SaleOrderOutbound.ashx/SaveData"; // 销售出库登记接口
private static final SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private static final String logginfo = "OALOG";
private static final Log obmlog = Log.getInstance(logginfo);
private static BaseDAO dao = new BaseDAO();
public AfterSigningSynchronizeRule() {
public AfterSigningSynchronizeRuleMES() {
}
@Override
@ -59,7 +70,7 @@ public class AfterSigningSynchronizeRule implements IRule<SaleOutVO> {
* 构建符合金思维系统接口规范的请求数据
* 按照NCC/YonBIP字段映射到金思维系统字段
*/
private JSONObject buildSyncData(SaleOutHeadVO hvo, SaleOutBodyVO[] bvos) {
private JSONObject buildSyncData(SaleOutHeadVO hvo, SaleOutBodyVO[] bvos) throws BusinessException {
obmlog.debug("AfterSigningSynchronizeRule-开始处理销售出库单: " + hvo.getVbillcode());
if (!hvo.getPk_org().equals("0001A110000000000677")) {
obmlog.debug("AfterSigningSynchronizeRule-跳过处理销售出库单,因为此单据组织非电缆: " + hvo.getVbillcode());
@ -73,43 +84,33 @@ public class AfterSigningSynchronizeRule implements IRule<SaleOutVO> {
info.put("orderNo", hvo.getVbillcode()); // 提货单ID - 单据号(vbillcode)
// 日期格式转换
UFDate dbilldate = hvo.getDbilldate();
String billDateStr = dateTimeFormat.format(dbilldate.toDate());
info.put("orderDate", billDateStr); // 提单日期 - 单据日期(dbilldate)
info.put("planDate", billDateStr); // 计划日期 - 使用同样的单据日期
info.put("actureDate", billDateStr);
// 生成方式可能存储在自定义字段中
String genType = getStringValue(hvo.getVdef1());
info.put("genType", null); // 生成方式 - 默认N
info.put("type", "XSCK"); // 默认事务类型XSCK
info.put("departmentId", hvo.getCdptvid()); // 部门ID - 部门(cdptvid)
info.put("storeId", hvo.getCwarehouseid()); // 仓库ID - 仓库(cwarehouseid)
// 汇率默认为1
info.put("orderDate", dbilldate.toString()); // 提单日期 - 单据日期(dbilldate)
info.put("planDate", dbilldate.toString()); // 计划日期 - 使用同样的单据日期
info.put("actureDate", dbilldate.toString());
info.put("genType", null);
info.put("type", "XSCK");
// 部门ID - 部门(cdptvid)
info.put("departmentId", transferCodeByPk(DeptVO.getDefaultTableName(), DeptVO.CODE, DeptVO.PK_DEPT, hvo.getCdptvid()));
// 仓库ID - 仓库(cwarehouseid)
info.put("storeId", transferCodeByPk(RackVO.getDefaultTableName(), RackVO.CODE, RackVO.PK_RACK, hvo.getCwarehouseid()));
// TODO
info.put("exRate", null);
info.put("sType", "N"); // 发出默认值
info.put("billing", "Y"); // 出具发票默认值
info.put("billingBasis", "S"); // 开票依据默认值
// 有效日期可能为空可能存储在其他字段或自定义字段中
String effDateStr = getStringValue(hvo.getVdef2());
if (StringUtils.isNotEmpty(effDateStr)) {
try {
UFDate effDate = new UFDate(effDateStr);
info.put("effDate", dateTimeFormat.format(effDate.toDate()));
} catch (Exception e) {
obmlog.error("解析有效日期出错: " + e.getMessage());
}
}
info.put("effDate", null);
info.put("consignStoreId", null); // 寄售仓库ID
info.put("consignType", null); // 寄售事务类型
info.put("operatorNo", null); // 经办人工号 - 制单人(billmaker)
info.put("operatorName", null); // 经办人 - 可能是自定义字段
info.put("storeKeeper", hvo.getCwhsmanagerid()); // 保管员 - 库管员(cwhsmanagerid)
info.put("cwhsmanagerid", hvo.getCwhsmanagerid()); // 保管员ID - 库管员(cwhsmanagerid)
info.put("customId", hvo.getCcustomerid()); // 客户ID - 订单客户(ccustomerid)
info.put("operatorName", null); // 经办人
// 保管员 - 库管员(cwhsmanagerid)
info.put("storeKeeper", transferCodeByPk(PsndocVO.getDefaultTableName(), PsndocVO.CODE, PsndocVO.PK_PSNDOC, hvo.getCwhsmanagerid()));
// 保管员ID - 库管员(cwhsmanagerid)
info.put("cwhsmanagerid", transferCodeByPk(PsndocVO.getDefaultTableName(), PsndocVO.CODE, PsndocVO.PK_PSNDOC, hvo.getCwhsmanagerid()));
// 客户ID - 订单客户(ccustomerid)
info.put("customId", transferCodeByPk(CustomerVO.getDefaultTableName(), CustomerVO.CODE, CustomerVO.PK_CUSTOMER, hvo.getCcustomerid()));
info.put("mark", "Y"); // 生成标志默认值
info.put("remark", hvo.getVnote()); // 备注 - 备注(vnote)
// 构建details明细数组
JSONArray details = new JSONArray();
if (bvos != null) {
@ -117,32 +118,32 @@ public class AfterSigningSynchronizeRule implements IRule<SaleOutVO> {
JSONObject detail = new JSONObject();
detail.put("orderNo", hvo.getVbillcode()); // 提货单ID - 单据号(vbillcode)
detail.put("sequenceNum", bvo.getCrowno());
// 来源单据信息 - 根据字典正确映射
detail.put("saleOrderNo", null); // SOID - 来源单据号(vsourcebillcode)
detail.put("saleSequenceNum", null); // SO序号 - 来源单据行号(vsourcerowno)
detail.put("allocationNum", null); // 分配号
// 物料相关 - 使用正确的字段名
detail.put("materialId", bvo.getCmaterialoid()); // 物料ID - 物料(cmaterialoid)
detail.put("unit", bvo.getCunitid()); // 计量单位 - 主单位(cunitid)
detail.put("productNum", null); // 制令号 - 可能是自定义字段
detail.put("storageId", bvo.getClocationid()); // 库位 - 货位(clocationid)
detail.put("batchNum", bvo.getVbatchcode()); // 物料批号 - 批次号(vbatchcode)
// 物料ID - 物料(cmaterialoid)
detail.put("materialId", transferCodeByPk(MaterialVO.getDefaultTableName(), MaterialVO.CODE, MaterialVO.PK_MATERIAL, bvo.getCmaterialoid()));
// 计量单位 - 主单位(cunitid)
detail.put("unit", transferCodeByPk(MeasdocVO.getDefaultTableName(), MeasdocVO.CODE, MeasdocVO.PK_MEASDOC, bvo.getCunitid()));
detail.put("productNum", null);
// 库位 - 货位(clocationid)
detail.put("storageId", transferCodeByPk(RackVO.getDefaultTableName(), RackVO.CODE, RackVO.PK_RACK, bvo.getClocationid()));
// 物料批号 - 批次号(vbatchcode)
detail.put("batchNum", bvo.getVbatchcode());
detail.put("scaleFactor", bvo.getVchangerate());
// 应发数量和实发数量
detail.put("issuedQty", bvo.getNshouldassistnum()); // 应发数量(nshouldassistnum)
detail.put("mIssuedQty", bvo.getNshouldnum()); // 主应发数量(nshouldnum)
detail.put("actQry", bvo.getNassistnum()); // 实发数量(nassistnum)
detail.put("mActQry", bvo.getNnum()); // 主实发数量(nnum)
detail.put("assistActQry", null); // 辅助实发数量(nassistnum)
// 客户信息
detail.put("customId", getStringValue(bvo.getCasscustid())); // 客户ID - 客户(casscustid)
// 客户ID - 客户(casscustid)
detail.put("customId", transferCodeByPk(CustomerVO.getDefaultTableName(), CustomerVO.CODE, CustomerVO.PK_CUSTOMER, bvo.getCasscustid()));
// 供应商信息
detail.put("supplierId", getStringValue(bvo.getCvendorid())); // 供应商ID - 供应商(cvendorid)
// 供应商ID - 供应商(cvendorid)
detail.put("supplierId", transferCodeByPk(SupplierVO.getDefaultTableName(), SupplierVO.CODE, SupplierVO.PK_SUPPLIER, bvo.getCvendorid()));
detail.put("color", null);
// 生产日期
detail.put("manufactureDate", null); // 生产日期(dproducedate)
@ -196,4 +197,21 @@ public class AfterSigningSynchronizeRule implements IRule<SaleOutVO> {
obmlog.error("AfterSigningSynchronizeRule-处理响应异常: " + e.getMessage(), e);
}
}
private String transferCodeByPk(String tableName, String selectField, String pkField, String pk) throws BusinessException {
if (nc.vo.cmp.util.StringUtils.isEmpty(pk)) {
return null;
}
SqlBuilder sqlBuilder = new SqlBuilder();
sqlBuilder.append(" select " + selectField);
sqlBuilder.append(" from " + tableName);
sqlBuilder.append(" where ");
sqlBuilder.append(pkField, pk);
Object o = dao.executeQuery(sqlBuilder.toString(), new ColumnProcessor());
if (o == null) {
throw new BusinessException("未查询到编码信息sql【" + sqlBuilder + "");
}
return o.toString();
}
}

View File

@ -1,6 +1,6 @@
package nc.bs.ic.m4r.approve;
import nc.bs.ic.m4r.approve.rule.AfterApprovingSynchronizeRule;
import nc.bs.ic.m4r.approve.rule.AfterApprovingSynchronizeRuleMES;
import nc.bs.ic.m4r.approve.rule.PushInOutBills;
import nc.bs.ic.m4r.base.BPPluginPoint;
import nc.bs.ic.m4r.insert.rule.InvcountDataCheck;
@ -23,7 +23,7 @@ public class ApproveBP implements IApproveBP<InvCountBillVO>, IApproveRuleProvid
public void addApproveAfterRule(ICAroundProcesser<InvCountBillVO> processor) {
processor.addAfterRule(new PushInOutBills());
// 盘点审批后传MES
processor.addAfterRule(new AfterApprovingSynchronizeRule());
processor.addAfterRule(new AfterApprovingSynchronizeRuleMES());
}
public void addApproveBeforeRule(ICAroundProcesser<InvCountBillVO> processor) {

View File

@ -4,15 +4,22 @@ package nc.bs.ic.m4r.approve.rule;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yonyou.cloud.utils.StringUtils;
import nc.bs.dao.BaseDAO;
import nc.bs.framework.common.NCLocator;
import nc.bs.logging.Log;
import nc.impl.pubapp.pattern.rule.IRule;
import nc.jdbc.framework.processor.ColumnProcessor;
import nc.vo.bd.cust.CustomerVO;
import nc.vo.bd.material.MaterialVO;
import nc.vo.bd.rack.RackVO;
import nc.vo.bd.supplier.SupplierVO;
import nc.vo.ic.m4r.entity.InvCountBillVO;
import nc.vo.ic.m4r.entity.InvCountBodyVO;
import nc.vo.ic.m4r.entity.InvCountHeaderVO;
import nc.vo.pub.BusinessException;
import nc.vo.pub.lang.UFDate;
import nc.vo.pub.lang.UFDouble;
import nc.vo.pubapp.pattern.pub.SqlBuilder;
import nccloud.pubift.commen.itf.utils.IHttpPostOtherSys;
import java.text.SimpleDateFormat;
@ -21,13 +28,14 @@ import java.text.SimpleDateFormat;
/**
* 盘点审批后传MES
*/
public class AfterApprovingSynchronizeRule implements IRule<InvCountBillVO> {
public class AfterApprovingSynchronizeRuleMES implements IRule<InvCountBillVO> {
private static final String INV_COUNT_URL = "/GTHINKING/AjaxService/N_MISPRO/InvCount.ashx/SaveData"; // 盘点单同步接口
private static final SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private static final String logginfo = "OALOG";
private static final Log obmlog = Log.getInstance(logginfo);
private static final BaseDAO dao = new BaseDAO();
public AfterApprovingSynchronizeRule() {
public AfterApprovingSynchronizeRuleMES() {
}
@Override
@ -107,29 +115,24 @@ public class AfterApprovingSynchronizeRule implements IRule<InvCountBillVO> {
if (bvos != null) {
for (InvCountBodyVO bvo : bvos) {
JSONObject detail = new JSONObject();
// 必填字段
// 序号 - 转换为浮点数
detail.put("sequenceNum", bvo.getCrowno()); // 序号(crowno) - 必填
detail.put("materialId", getStringValue(bvo.getCmaterialvid())); // 物料ID(cmaterialvid) - 必填
detail.put("storageId", getStringValue(bvo.getClocationid())); // 库位(clocationid) - 必填
detail.put("batchNum", getStringValue(bvo.getVbatchcode())); // 物料批号(vbatchcode) - 必填
detail.put("sequenceNum", bvo.getCrowno());
// 物料ID(cmaterialvid) - 必填
detail.put("materialId", transferCodeByPk(MaterialVO.getDefaultTableName(), MaterialVO.PK_MATERIAL, MaterialVO.CODE, bvo.getCmaterialvid()));
// 库位(clocationid) - 必填
detail.put("storageId", transferCodeByPk(RackVO.getDefaultTableName(), RackVO.CODE, RackVO.PK_RACK, bvo.getClocationid()));
// 物料批号(vbatchcode) - 必填
detail.put("batchNum", getStringValue(bvo.getVbatchcode()));
// 盘存数量 - 使用实盘主数量
UFDouble countNum = bvo.getNcountnum();
if (countNum != null) {
detail.put("panQty", countNum.doubleValue()); // 盘存数量(ncountnum) - 必填
} else {
throw new BusinessException("盘存数量不能为空");
}
detail.put("customId", getStringValue(bvo.getCasscustid())); // 客户ID
detail.put("supplierId", getStringValue(bvo.getCvendorid())); // 供应商ID
detail.put("panQty", countNum.doubleValue()); // 盘存数量(ncountnum) - 必填
// 客户ID
detail.put("customId", transferCodeByPk(CustomerVO.getDefaultTableName(), CustomerVO.CODE, CustomerVO.PK_CUSTOMER, bvo.getCasscustid()));
// 供应商ID
detail.put("supplierId", transferCodeByPk(SupplierVO.getDefaultTableName(), SupplierVO.CODE, SupplierVO.PK_SUPPLIER, bvo.getCvendorid()));
// 生产日期处理
detail.put("manufactureDate", null); // 如果没有传入null
detail.put("manufactureDate", null);
detail.put("color", null);
// 包装信息可能来自自定义属性
detail.put("packLen", null);
detail.put("packSize", null);
@ -182,4 +185,20 @@ public class AfterApprovingSynchronizeRule implements IRule<InvCountBillVO> {
obmlog.error("AfterApprovingSynchronizeRule-处理响应异常: " + e.getMessage(), e);
}
}
private String transferCodeByPk(String tableName, String selectField, String pkField, String pk) throws BusinessException {
if (nc.vo.cmp.util.StringUtils.isEmpty(pk)) {
return null;
}
SqlBuilder sqlBuilder = new SqlBuilder();
sqlBuilder.append(" select " + selectField);
sqlBuilder.append(" from " + tableName);
sqlBuilder.append(" where ");
sqlBuilder.append(pkField, pk);
Object o = dao.executeQuery(sqlBuilder.toString(), new ColumnProcessor());
if (o == null) {
throw new BusinessException("未查询到编码信息sql【" + sqlBuilder + "");
}
return o.toString();
}
}

View File

@ -49,7 +49,7 @@ public class PMOApproveBP {
processer.addAfterRule(new PMOCreatePSCPlanRule());
ICompareRule<PMOAggVO> auditSupplyRule = new PMOApproveAuditSupplyRule();
processer.addAfterRule(auditSupplyRule);
// 审批后推送到睿智系统
// 审批后推送到RZ系统
processer.addAfterRule(new AfterApprovingSynchronizeRuleRZ());
}

View File

@ -8,21 +8,25 @@ import nc.bs.uapbd.util.ThirdPartyPostRequestUtil;
import nc.impl.pubapp.pattern.rule.IRule;
import nc.jdbc.framework.processor.ColumnProcessor;
import nc.pubitf.para.SysInitQuery;
import nc.vo.bd.material.MaterialVO;
import nc.vo.bd.stordoc.StordocVO;
import nc.vo.cmp.util.StringUtils;
import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO;
import nc.vo.mmpac.pmo.pac0002.entity.PMOHeadVO;
import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO;
import nc.vo.org.DeptVO;
import nc.vo.org.OrgVO;
import nc.vo.pub.BusinessException;
import nc.vo.pubapp.pattern.exception.ExceptionUtils;
import nc.vo.pubapp.pattern.pub.SqlBuilder;
import nc.vo.rum.stocks.StocksVO;
import nc.vo.scmpub.util.ArrayUtil;
import java.util.ArrayList;
import java.util.List;
/**
* 流程生产订单审批后推送睿智
* 流程生产订单审批后推送RZ
*/
public class AfterApprovingSynchronizeRuleRZ implements IRule<PMOAggVO> {
private static final Log log = Log.getInstance("rzmomlog");
@ -40,10 +44,10 @@ public class AfterApprovingSynchronizeRuleRZ implements IRule<PMOAggVO> {
return;
}
// 推送到睿智系统
// 推送到RZ系统
pushToRZMOM(filteredOrders.toArray(new PMOAggVO[0]));
} catch (Exception e) {
log.error("同步生产订单到睿智系统失败: " + e.getMessage(), e);
log.error("同步生产订单到RZ系统失败: " + e.getMessage(), e);
ExceptionUtils.wrappException(e);
}
}
@ -55,7 +59,7 @@ public class AfterApprovingSynchronizeRuleRZ implements IRule<PMOAggVO> {
List<PMOAggVO> aggvoList = new ArrayList<>();
for (PMOAggVO aggvo : pmoAggVOS) {
String pkOrg = aggvo.getParentVO().getPk_org();
String orgCode = transferCodeByPk(OrgVO.getDefaultTableName(), pkOrg);
String orgCode = transferCodeByPk(OrgVO.getDefaultTableName(), OrgVO.CODE, OrgVO.PK_ORG, pkOrg);
if ("30401".equals(orgCode)) {
aggvoList.add(aggvo);
}
@ -64,14 +68,13 @@ public class AfterApprovingSynchronizeRuleRZ implements IRule<PMOAggVO> {
}
/**
* 推送数据到睿智MOM系统
* 推送数据到RZMOM系统
*/
private void pushToRZMOM(PMOAggVO[] pmoAggVOS) throws BusinessException {
String rzwmsip = SysInitQuery.getParaString("GLOBLE00000000000000", "RZWMSIP");
JSONObject jsonObject = new JSONObject();
jsonObject.put("dataflow", "泰开BIP→RZMOMv6");
jsonObject.put("actionCode", "scdd"); // 生产订单的action code
jsonObject.put("actionCode", "jhxmb"); // 生产订单的action code
JSONObject dataIn = new JSONObject();
JSONObject dataIn2 = new JSONObject();
@ -107,68 +110,31 @@ public class AfterApprovingSynchronizeRuleRZ implements IRule<PMOAggVO> {
for (PMOItemVO body : bodys) {
JSONObject detailItem = new JSONObject();
// 根据映射表设置字段
detailItem.put("jhmx_wbid", vbillcode); // 第三方系统主键id
detailItem.put("scjh_wbid", vbillcode); // 计划ID
detailItem.put("operate", 1); // 操作状态1新增/修改
detailItem.put("scbh", vbillcode); // 计划编号
// 计划序号有则使用实际值无则设为1
String rowno = body.getVrowno();
detailItem.put("jhxh", StringUtils.isEmpty(rowno) ? 1 : Integer.parseInt(rowno));
// 第三方系统计划类别id
detailItem.put("jhlb_wbid", head.getVtrantypecode());
// 第三方系统产品ID
detailItem.put("wlbm_wbid", body.getCmaterialvid());
// 计划数量
if (body.getNmmastnum() != null) {
detailItem.put("jhsl", body.getNmmastnum().doubleValue());
}
detailItem.put("jhlx", null);
// 计划员
detailItem.put("jhy_wbid", null);
// 上线日期 - 计划开工日期
if (body.getTplanstarttime() != null) {
detailItem.put("sxrq", body.getTplanstarttime().toString());
}
// 完成日期 - 计划完工日期
if (body.getTplanendtime() != null) {
detailItem.put("wcrq", body.getTplanendtime().toString());
}
// 第三方系统产品ID 物料ID
detailItem.put("wlbm_wbid", transferCodeByPk(MaterialVO.getDefaultTableName(), MaterialVO.CODE, MaterialVO.PK_MATERIAL, body.getCmaterialvid()));
// 预计开工日期
detailItem.put("sxrq", body.getTplanstarttime().toString());
// 预计完工日期
detailItem.put("wcrq", body.getTplanendtime().toString());
detailItem.put("gdbj", body.getFitemstatus());
// 计划产出数量
detailItem.put("jhsl", body.getNmmastnum().doubleValue());
// 入库仓库
detailItem.put("sdck", transferCodeByPk(StordocVO.getDefaultTableName(), StordocVO.CODE, StordocVO.PK_STORDOC, body.getCinwarehouseid()));
detailItem.put("wlzdycs01", transferCodeByPk(StordocVO.getDefaultTableName(), StordocVO.CODE, StordocVO.PK_STORDOC, body.getCinwarehouseid()));
// 工作中心 生产部门ID
detailItem.put("scgc_wbid", transferCodeByPk(DeptVO.getDefaultTableName(), DeptVO.CODE, DeptVO.PK_DEPT, body.getCdeptid()));
// 订单序号
detailItem.put("ddbh", body.getVsalebillcode());
// 订单序号
detailItem.put("khddh", null);
detailItem.put("ddxh", null);
// 备注说明
detailItem.put("bzsm", head.getVnote());
// 签发标记 - 行状态
detailItem.put("qfbj", body.getFitemstatus());
// 送达地点 - 入库仓库
detailItem.put("sdck", body.getCinwarehouseid());
detailItem.put("bzsm", body.getVnote());
// 项目编号
detailItem.put("wlzdycs06", body.getVdef1());
// 固定值设置
detailItem.put("zdscjhlyb", 1); // 自动生成计划来源表
detailItem.put("jhbhzdsc", 0); // 计划号重新生成
detailItem.put("bomsdbj", 1); // 生产BOM锁定
detailItem.put("bsbj", 1); // 包装Bom表锁定
// 其他字段映射
detailItem.put("khbh_wbid", body.getCcustomerid()); // 第三方系统客户id
detailItem.put("cjbz_wbid", body.getCdeptid()); // 第三方系统车间工段ID
// 销售订单相关
detailItem.put("xsdd_wbid", body.getVfirstid()); // 第三方系统销售订单主表ID
detailItem.put("ddbh", body.getVsalebillcode()); // 订单编号
detailItem.put("ddxh", body.getVfirstrowno()); // 订单序号
detailItem.put("htbz,wlzdycs06", body.getVdef1());
details.add(detailItem);
}
}
@ -176,15 +142,15 @@ public class AfterApprovingSynchronizeRuleRZ implements IRule<PMOAggVO> {
/**
* 根据主键查询编码
*/
private String transferCodeByPk(String tableName, String pk) throws BusinessException {
private String transferCodeByPk(String tableName, String selectField, String pkField, String pk) throws BusinessException {
if (StringUtils.isEmpty(pk)) {
return null;
}
SqlBuilder sqlBuilder = new SqlBuilder();
sqlBuilder.append(" select " + OrgVO.CODE);
sqlBuilder.append(" select " + selectField);
sqlBuilder.append(" from " + tableName);
sqlBuilder.append(" where ");
sqlBuilder.append(OrgVO.PK_ORG, pk);
sqlBuilder.append(pkField, pk);
Object o = dao.executeQuery(sqlBuilder.toString(), new ColumnProcessor());
if (o == null) {
throw new BusinessException("未查询到编码信息sql【" + sqlBuilder + "");