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
*/
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();
@Override
public void process(SaleOutVO[] saleOutVOS) {
if(ArrayUtil.isEmpty(saleOutVOS)){
if (ArrayUtil.isEmpty(saleOutVOS)) {
return;
}
try{
try {
//检查并筛选销售出库单据为互感器公司
List<SaleOutVO> newSaleOutVOS= checkAndFilterBillSrcOrg(saleOutVOS);
if(newSaleOutVOS==null||newSaleOutVOS.size()<1){
List<SaleOutVO> newSaleOutVOS = checkAndFilterBillSrcOrg(saleOutVOS);
if (newSaleOutVOS == null || newSaleOutVOS.size() < 1) {
return;
}
pushToRZMOM(newSaleOutVOS.toArray(new SaleOutVO[0]));
}catch (Exception e){
} catch (Exception e) {
log.error("同步销售出库到锐制系统失败: " + e.getMessage(), e);
ExceptionUtils.wrappException(e);
}
}
private List<SaleOutVO> checkAndFilterBillSrcOrg(SaleOutVO[] saleOutVOS) throws BusinessException {
List<SaleOutVO> aggvoList=new ArrayList<>();
for(SaleOutVO aggvo:saleOutVOS){
List<SaleOutVO> aggvoList = new ArrayList<>();
for (SaleOutVO aggvo : saleOutVOS) {
String pkOrg = aggvo.getHead().getPk_org();
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);
}
}
@ -74,26 +75,26 @@ public class AfterSigningSynchronizeRuleRZ implements IRule<SaleOutVO> {
JSONObject dataIn = new JSONObject();
JSONObject dataIn2 = new JSONObject();
JSONArray details = new JSONArray();
jsonObject.put("dataflow","用友BIP→RZMOMv6");
jsonObject.put("actionCode","cpfhtzdb");
jsonObject.put("dataflow", "用友BIP→RZMOMv6");
jsonObject.put("actionCode", "cpfhtzdb");
//单笔/批量按明细传
for (SaleOutVO saleOutVO : saleOutVOS) {
SaleOutHeadVO head = saleOutVO.getHead();
SaleOutBodyVO[] bodys = saleOutVO.getBodys();
// 构建需要同步的数据
buildSyncData(head, bodys,details);
buildSyncData(head, bodys, details);
}
dataIn2.put("Details",details);
dataIn.put("Data",dataIn2);
data.put("data",dataIn);
jsonObject.put("data",data);
log.error("销售出库签字推送锐制请求报文:"+jsonObject.toJSONString());
dataIn2.put("Details", details);
dataIn.put("Data", dataIn2);
data.put("data", dataIn);
jsonObject.put("data", data);
log.error("销售出库签字推送锐制请求报文:" + jsonObject.toJSONString());
String result = ThirdPartyPostRequestUtil.sendPostRequest(rzwmsip, jsonObject.toJSONString());
JSONObject resultObj = JSONObject.parseObject(result);
if("false".equals(resultObj.getString("success"))){
throw new BusinessException("RZMOM同步失败原因"+resultObj.getString("msg"));
}else{
log.error("RZMOM同步成功返回参数【"+resultObj.toJSONString()+"");
if ("false".equals(resultObj.getString("success"))) {
throw new BusinessException("RZMOM同步失败原因" + resultObj.getString("msg"));
} else {
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());
for(SaleOutBodyVO body:bodys){
for (SaleOutBodyVO body : bodys) {
JSONObject singleObj = new JSONObject();
String cgeneralhid = body.getCgeneralhid();//表头主键
String cgeneralbid = body.getCgeneralbid();//表体主键
@ -113,47 +114,49 @@ public class AfterSigningSynchronizeRuleRZ implements IRule<SaleOutVO> {
String casscustid = body.getCasscustid();//客户
String cbodywarehouseid = body.getCbodywarehouseid();//仓库
UFDate dbizdate = body.getDbizdate();//出库日期
singleObj.put("wbid",cgeneralhid+"_"+cgeneralbid+"_"+vtrantypecode);//第三方系统主键id
singleObj.put("wbpid",cgeneralhid);//第三方系统分组id
singleObj.put("operate",1);//operate int 操作状态 必填 1新增/修改2删除删除时只需上传wbid
singleObj.put("djly",1013);//djly varchar(20) 来源单据
singleObj.put("djbh_id",cgeneralhid);//单据id
singleObj.put("djbh",vbillcode);//单据编号
singleObj.put("djxh",crowno);//单据序号
singleObj.put("djrq",dbizdate.toString());//单据日期--出库日期
singleObj.put("wbid", cgeneralhid + "_" + cgeneralbid + "_" + vtrantypecode);//第三方系统主键id
singleObj.put("wbpid", cgeneralhid);//第三方系统分组id
singleObj.put("operate", 1);//operate int 操作状态 必填 1新增/修改2删除删除时只需上传wbid
singleObj.put("djly", 1013);//djly varchar(20) 来源单据
singleObj.put("djbh_id", cgeneralhid);//单据id
singleObj.put("djbh", vbillcode);//单据编号
singleObj.put("djxh", crowno);//单据序号
singleObj.put("djrq", dbizdate.toString());//单据日期--出库日期
//第三方系统物料名称id--编码
singleObj.put("wlbm_wbid",cmaterialvid);
singleObj.put("wlbm_wbid", cmaterialvid);
//单据数量
singleObj.put("djsl",body.getNshouldassistnum().getDouble());
singleObj.put("djsl", body.getNshouldassistnum().getDouble());
//第三方系统客户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
singleObj.put("sddd",cbodywarehouseid);
singleObj.put("sddd", cbodywarehouseid);
//第三方系统仓库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
singleObj.put("operate",1);
singleObj.put("operate", 1);
details.add(singleObj);
}
}
private String transferCodeByPk(String tableName, String selectField, String pkField, String pk) throws BusinessException {
if(StringUtils.isEmpty(pk)){
if (StringUtils.isEmpty(pk)) {
return null;
}
SqlBuilder sqlBuilder = new SqlBuilder();