AfterSigningSynchronizeRuleRZ添加两个字段 合同编号和项目名称

This commit is contained in:
张明 2025-06-17 15:29:44 +08:00
parent 5a869f91ab
commit de301e47d6
1 changed files with 46 additions and 43 deletions

View File

@ -34,33 +34,34 @@ import java.util.List;
* @Created by ame * @Created by ame
*/ */
public class AfterSigningSynchronizeRuleRZ implements IRule<SaleOutVO> { public class AfterSigningSynchronizeRuleRZ implements IRule<SaleOutVO> {
private static Log log=Log.getInstance("rzmomlog"); private static Log log = Log.getInstance("rzmomlog");
private static BaseDAO dao = new BaseDAO(); private static BaseDAO dao = new BaseDAO();
@Override @Override
public void process(SaleOutVO[] saleOutVOS) { public void process(SaleOutVO[] saleOutVOS) {
if(ArrayUtil.isEmpty(saleOutVOS)){ if (ArrayUtil.isEmpty(saleOutVOS)) {
return; return;
} }
try{ try {
//检查并筛选销售出库单据为互感器公司 //检查并筛选销售出库单据为互感器公司
List<SaleOutVO> newSaleOutVOS= checkAndFilterBillSrcOrg(saleOutVOS); List<SaleOutVO> newSaleOutVOS = checkAndFilterBillSrcOrg(saleOutVOS);
if(newSaleOutVOS==null||newSaleOutVOS.size()<1){ if (newSaleOutVOS == null || newSaleOutVOS.size() < 1) {
return; return;
} }
pushToRZMOM(newSaleOutVOS.toArray(new SaleOutVO[0])); pushToRZMOM(newSaleOutVOS.toArray(new SaleOutVO[0]));
}catch (Exception e){ } catch (Exception e) {
log.error("同步销售出库到锐制系统失败: " + e.getMessage(), e); log.error("同步销售出库到锐制系统失败: " + e.getMessage(), e);
ExceptionUtils.wrappException(e); ExceptionUtils.wrappException(e);
} }
} }
private List<SaleOutVO> checkAndFilterBillSrcOrg(SaleOutVO[] saleOutVOS) throws BusinessException { private List<SaleOutVO> checkAndFilterBillSrcOrg(SaleOutVO[] saleOutVOS) throws BusinessException {
List<SaleOutVO> aggvoList=new ArrayList<>(); List<SaleOutVO> aggvoList = new ArrayList<>();
for(SaleOutVO aggvo:saleOutVOS){ for (SaleOutVO aggvo : saleOutVOS) {
String pkOrg = aggvo.getHead().getPk_org(); String pkOrg = aggvo.getHead().getPk_org();
String orgCode = transferCodeByPk(OrgVO.getDefaultTableName(), OrgVO.CODE, OrgVO.PK_ORG, pkOrg); String orgCode = transferCodeByPk(OrgVO.getDefaultTableName(), OrgVO.CODE, OrgVO.PK_ORG, pkOrg);
if("C022".equals(orgCode)&& aggvo.getBodys()!=null && aggvo.getBodys().length>0){ if ("C022".equals(orgCode) && aggvo.getBodys() != null && aggvo.getBodys().length > 0) {
aggvoList.add(aggvo); aggvoList.add(aggvo);
} }
} }
@ -74,26 +75,26 @@ public class AfterSigningSynchronizeRuleRZ implements IRule<SaleOutVO> {
JSONObject dataIn = new JSONObject(); JSONObject dataIn = new JSONObject();
JSONObject dataIn2 = new JSONObject(); JSONObject dataIn2 = new JSONObject();
JSONArray details = new JSONArray(); JSONArray details = new JSONArray();
jsonObject.put("dataflow","用友BIP→RZMOMv6"); jsonObject.put("dataflow", "用友BIP→RZMOMv6");
jsonObject.put("actionCode","cpfhtzdb"); jsonObject.put("actionCode", "cpfhtzdb");
//单笔/批量按明细传 //单笔/批量按明细传
for (SaleOutVO saleOutVO : saleOutVOS) { for (SaleOutVO saleOutVO : saleOutVOS) {
SaleOutHeadVO head = saleOutVO.getHead(); SaleOutHeadVO head = saleOutVO.getHead();
SaleOutBodyVO[] bodys = saleOutVO.getBodys(); SaleOutBodyVO[] bodys = saleOutVO.getBodys();
// 构建需要同步的数据 // 构建需要同步的数据
buildSyncData(head, bodys,details); buildSyncData(head, bodys, details);
} }
dataIn2.put("Details",details); dataIn2.put("Details", details);
dataIn.put("Data",dataIn2); dataIn.put("Data", dataIn2);
data.put("data",dataIn); data.put("data", dataIn);
jsonObject.put("data",data); jsonObject.put("data", data);
log.error("销售出库签字推送锐制请求报文:"+jsonObject.toJSONString()); log.error("销售出库签字推送锐制请求报文:" + jsonObject.toJSONString());
String result = ThirdPartyPostRequestUtil.sendPostRequest(rzwmsip, jsonObject.toJSONString()); String result = ThirdPartyPostRequestUtil.sendPostRequest(rzwmsip, jsonObject.toJSONString());
JSONObject resultObj = JSONObject.parseObject(result); JSONObject resultObj = JSONObject.parseObject(result);
if("false".equals(resultObj.getString("success"))){ if ("false".equals(resultObj.getString("success"))) {
throw new BusinessException("RZMOM同步失败原因"+resultObj.getString("msg")); throw new BusinessException("RZMOM同步失败原因" + resultObj.getString("msg"));
}else{ } else {
log.error("RZMOM同步成功返回参数【"+resultObj.toJSONString()+""); log.error("RZMOM同步成功返回参数【" + resultObj.toJSONString() + "");
} }
} }
@ -104,7 +105,7 @@ public class AfterSigningSynchronizeRuleRZ implements IRule<SaleOutVO> {
//部门 //部门
// String cdptCode =transferCodeByPk(DeptVO.getDefaultTableName(), DeptVO.CODE,DeptVO.PK_DEPT,head.getCdptid()); // String cdptCode =transferCodeByPk(DeptVO.getDefaultTableName(), DeptVO.CODE,DeptVO.PK_DEPT,head.getCdptid());
for(SaleOutBodyVO body:bodys){ for (SaleOutBodyVO body : bodys) {
JSONObject singleObj = new JSONObject(); JSONObject singleObj = new JSONObject();
String cgeneralhid = body.getCgeneralhid();//表头主键 String cgeneralhid = body.getCgeneralhid();//表头主键
String cgeneralbid = body.getCgeneralbid();//表体主键 String cgeneralbid = body.getCgeneralbid();//表体主键
@ -113,47 +114,49 @@ public class AfterSigningSynchronizeRuleRZ implements IRule<SaleOutVO> {
String casscustid = body.getCasscustid();//客户 String casscustid = body.getCasscustid();//客户
String cbodywarehouseid = body.getCbodywarehouseid();//仓库 String cbodywarehouseid = body.getCbodywarehouseid();//仓库
UFDate dbizdate = body.getDbizdate();//出库日期 UFDate dbizdate = body.getDbizdate();//出库日期
singleObj.put("wbid",cgeneralhid+"_"+cgeneralbid+"_"+vtrantypecode);//第三方系统主键id singleObj.put("wbid", cgeneralhid + "_" + cgeneralbid + "_" + vtrantypecode);//第三方系统主键id
singleObj.put("wbpid",cgeneralhid);//第三方系统分组id singleObj.put("wbpid", cgeneralhid);//第三方系统分组id
singleObj.put("operate",1);//operate int 操作状态 必填 1新增/修改2删除删除时只需上传wbid singleObj.put("operate", 1);//operate int 操作状态 必填 1新增/修改2删除删除时只需上传wbid
singleObj.put("djly",1013);//djly varchar(20) 来源单据 singleObj.put("djly", 1013);//djly varchar(20) 来源单据
singleObj.put("djbh_id",cgeneralhid);//单据id singleObj.put("djbh_id", cgeneralhid);//单据id
singleObj.put("djbh",vbillcode);//单据编号 singleObj.put("djbh", vbillcode);//单据编号
singleObj.put("djxh",crowno);//单据序号 singleObj.put("djxh", crowno);//单据序号
singleObj.put("djrq",dbizdate.toString());//单据日期--出库日期 singleObj.put("djrq", dbizdate.toString());//单据日期--出库日期
//第三方系统物料名称id--编码 //第三方系统物料名称id--编码
singleObj.put("wlbm_wbid",cmaterialvid); singleObj.put("wlbm_wbid", cmaterialvid);
//单据数量 //单据数量
singleObj.put("djsl",body.getNshouldassistnum().getDouble()); singleObj.put("djsl", body.getNshouldassistnum().getDouble());
//第三方系统客户id--编码 //第三方系统客户id--编码
singleObj.put("khbh_wbid",casscustid); singleObj.put("khbh_wbid", casscustid);
//订单编号 //订单编号
singleObj.put("ddbh",body.getVsourcebillcode()); singleObj.put("ddbh", body.getVsourcebillcode());
//订单序号 //订单序号
singleObj.put("ddxh",body.getVsourcerowno()); singleObj.put("ddxh", body.getVsourcerowno());
//送达地点-code //送达地点-code
singleObj.put("sddd",cbodywarehouseid); singleObj.put("sddd", cbodywarehouseid);
//第三方系统仓库id -code //第三方系统仓库id -code
singleObj.put("ckbh_wbid",cbodywarehouseid); singleObj.put("ckbh_wbid", cbodywarehouseid);
//部门 //部门
singleObj.put("bzsm",head.getCdptid()); singleObj.put("bzsm", head.getCdptid());
// 添加两个字段 项目号 项目名称 使用 vbdef1 vbdef10
singleObj.put("wlzdycs06", body.getVbdef1());
singleObj.put("wlzdycs11", body.getVbdef10());
//签发标记 //签发标记
singleObj.put("qfbj",1); singleObj.put("qfbj", 1);
//操作状态 1新增/修改2删除删除时只需上传wbid //操作状态 1新增/修改2删除删除时只需上传wbid
singleObj.put("operate",1); singleObj.put("operate", 1);
details.add(singleObj); details.add(singleObj);
} }
} }
private String transferCodeByPk(String tableName, String selectField, String pkField, String pk) throws BusinessException { private String transferCodeByPk(String tableName, String selectField, String pkField, String pk) throws BusinessException {
if(StringUtils.isEmpty(pk)){ if (StringUtils.isEmpty(pk)) {
return null; return null;
} }
SqlBuilder sqlBuilder = new SqlBuilder(); SqlBuilder sqlBuilder = new SqlBuilder();