Merge remote-tracking branch 'origin/main'

This commit is contained in:
lihao 2025-09-29 15:31:10 +08:00
commit aeb5f73a6b
5 changed files with 442 additions and 16 deletions

View File

@ -432,22 +432,28 @@ public class APIMaterialOutMaintainImpl implements IAPIMaterialOutMaintain {
for (MaterialOutVO outVO : outVOS) { for (MaterialOutVO outVO : outVOS) {
MaterialOutBodyVO[] bodys = outVO.getBodys(); MaterialOutBodyVO[] bodys = outVO.getBodys();
for (MaterialOutBodyVO body : bodys) { for (MaterialOutBodyVO body : bodys) {
sourceIds.add(body.getCfirstbillhid()); sourceIds.add(body.getCsourcebillhid());
} }
} }
// 查询备料计划行上的成套套数 nbsetpartsnum // 查询备料计划行上的成套套数 nbsetpartsnum
AggPickmVO[] newPickmVOS = queryService.queryBillsByPks(sourceIds.toArray(new String[0])); AggPickmVO[] newPickmVOS = queryService.queryBillsByPks(sourceIds.toArray(new String[0]));
if (newPickmVOS == null) {
throw new BusinessException("没有查询到材料出库关联的备料计划!");
}
// 获取备料计划行上的成套套数的合计值 // 获取备料计划行上的成套套数的合计值
Double sum = 0d; Double sum = 0d;
for (AggPickmVO newPickmVO : newPickmVOS) { if (newPickmVOS != null) {
PickmItemVO[] pickmItemVOS = (PickmItemVO[]) newPickmVO.getChildren(PickmItemVO.class); for (AggPickmVO newPickmVO : newPickmVOS) {
for (PickmItemVO pickmItemVO : pickmItemVOS) { PickmItemVO[] pickmItemVOS = (PickmItemVO[]) newPickmVO.getChildren(PickmItemVO.class);
Double nbsetpartsnum = pickmItemVO.getNbsetpartsnum().toDouble(); for (PickmItemVO pickmItemVO : pickmItemVOS) {
sum += nbsetpartsnum; Double nbsetpartsnum = pickmItemVO.getNbsetpartsnum().toDouble();
sum += nbsetpartsnum;
}
} }
} }
JSONObject result = new JSONObject(); JSONObject result = new JSONObject();
result.put("vbillcode", paramMap.get("vbillcode"));// 生产订单号 result.put("vbillcode", paramMap.get("vbillcode"));// 生产订单号
result.put("outcode", outVOS[0].getHead().getVbillcode());// 材料出库单号
result.put("batchId", paramMap.get("batchId"));// 领料批次id result.put("batchId", paramMap.get("batchId"));// 领料批次id
result.put("nbsetpartsnum", sum);// 累计领料套数 result.put("nbsetpartsnum", sum);// 累计领料套数
return result; return result;

View File

@ -93,5 +93,7 @@ public class PMOApproveBP {
ICompareRule<PMOAggVO> auditSupplyRule = new PMOApproveUnAuditSupplyRule(); ICompareRule<PMOAggVO> auditSupplyRule = new PMOApproveUnAuditSupplyRule();
processer.addAfterRule(auditSupplyRule); processer.addAfterRule(auditSupplyRule);
processer.addAfterRule(new AfterUnApproveSyncEpicMesRule()); processer.addAfterRule(new AfterUnApproveSyncEpicMesRule());
// 生产订单取消审批后推送高压MES
processer.addAfterRule(new AfterApproveCancelSyncHighpressureMesRule());
} }
} }

View File

@ -0,0 +1,141 @@
package nc.bs.mmpac.pmo.pac0002.bp.rule;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import nc.bs.dao.BaseDAO;
import nc.bs.logging.Log;
import nc.bs.trade.business.HYPubBO;
import nc.bs.uapbd.util.MyHelper;
import nc.bs.uapbd.util.ThirdPartyPostRequestUtil;
import nc.impl.pubapp.pattern.rule.IRule;
import nc.jdbc.framework.processor.ColumnProcessor;
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.OrgVO;
import nc.vo.pub.BusinessException;
import nc.vo.pubapp.pattern.exception.ExceptionUtils;
import nc.vo.scmpub.util.ArrayUtil;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
/**
* 流程生产订单取消审批后推送高压MES-删除接口
*
* @author houyi
* @date 2025/9/28
*/
public class AfterApproveCancelSyncHighpressureMesRule implements IRule<PMOAggVO> {
private static final String LOG_INFO_NAME = "gymeslog";
private static final Log logger = Log.getInstance(LOG_INFO_NAME);
private Map<String, String> configParams;
@Override
public void process(PMOAggVO[] pmoAggVOS) {
if (ArrayUtil.isEmpty(pmoAggVOS)) {
return;
}
configParams = MyHelper.getConfigParams("gy-config", null);
try {
buildSyncData(pmoAggVOS);
} catch (Exception e) {
logger.error("同步生产订单到高压MES系统失败: " + e.getMessage(), e);
ExceptionUtils.wrappException(e);
}
}
/**
* 构建同步数据
*/
private void buildSyncData(PMOAggVO[] useVOs) throws BusinessException {
BaseDAO baseDAO = new BaseDAO();
HYPubBO hybo = new HYPubBO();
JSONObject list = new JSONObject();
JSONArray jsonArray = new JSONArray();
for (PMOAggVO vo : useVOs) {
PMOHeadVO pmoHeadVO = vo.getParentVO();
PMOItemVO[] itemVOS = vo.getChildrenVO();
// 判断物料的业务单元是否是高压公司不是则跳过
String pkOrg = pmoHeadVO.getPk_org();
String orgCode = MyHelper.transferField(OrgVO.getDefaultTableName(), OrgVO.CODE, OrgVO.PK_ORG, pkOrg);
if (checkIfOrg(orgCode, configParams)) {
continue;
}
// JSONObject singleObj = new JSONObject();
String sql1 = " select user_name from sm_user where cuserid = '" + pmoHeadVO.getModifier() + "' ";
String bipCreateBy = (String) baseDAO.executeQuery(sql1, new ColumnProcessor());
list.put("bipUpdateBy", bipCreateBy); // 修改人ID
// 创建子项数组
JSONArray contentArray = new JSONArray();
JSONArray cmoidArray = new JSONArray();
for (PMOItemVO item : itemVOS) {
// 填充子项基础信息
String cmoid = item.getCmoid();
cmoidArray.add(cmoid);
}
ArrayList<Object> cmoidObj = new ArrayList<>(Arrays.asList(cmoidArray.toArray()));
// 使用 String.join 进行字符串拼接
String result = "";
StringBuilder sb = new StringBuilder();
if (cmoidObj.size() > 1) {
for (int i = 0; i < cmoidObj.size(); i++) {
sb.append("'").append(cmoidObj.get(i)).append("'");
if (i < cmoidObj.size() - 1) {
sb.append(",");
}
}
result = sb.toString();
} else {
result = "'" + (String) cmoidObj.get(0) + "'";
}
list.put("bipChildId", result); // 子项主键ID
}
pushData(list);
}
/**
* 推送同步数据
*/
private void pushData(JSONObject param) throws BusinessException {
// 转json字符串的时候保留null值
String jsonStr = JSON.toJSONString(param,
SerializerFeature.WriteMapNullValue,
SerializerFeature.WriteNullStringAsEmpty
);
logger.error("gyMes-PMO-param = " + jsonStr);
String baseUrl = configParams.get("mesBaseUrl");
String requestUrl = baseUrl + configParams.get("productionOrderCancel");
logger.error("gyMes-PMO-url = " + requestUrl);
String result = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, jsonStr);
JSONObject resultObj = JSONObject.parseObject(result);
logger.error("gyMes-PMO-res = " + result);
if (!"200".equals(resultObj.getString("code"))) {
logger.error("gyMes-PMO-error,result[" + resultObj.toJSONString() + "]");
throw new BusinessException("流程生产订单推送高压MES错误:" + resultObj.getString("msg"));
}
}
private boolean checkIfOrg(String code, Map<String, String> configParams) throws BusinessException {
String targetCode = configParams.get("gyOrg");
if (targetCode == null || nc.vo.am.common.util.StringUtils.isEmpty(targetCode)) {
throw new BusinessException("未配置组织参数");
}
String[] orgItem = targetCode.split(",");
for (String orgCode : orgItem) {
if (!orgCode.isEmpty() && orgCode.equals(code)) {
return false;
}
}
return true;
}
}

View File

@ -25,7 +25,7 @@ import java.util.*;
* @date 2025/9/27 * @date 2025/9/27
*/ */
public class AfterApproveSyncImsRule implements IRule<PMOAggVO> { public class AfterApproveSyncImsRule implements IRule<PMOAggVO> {
private String auditFlag;
private static final String LOG_INFO_NAME = "gymeslog"; private static final String LOG_INFO_NAME = "gymeslog";
private static final Log logger = Log.getInstance(LOG_INFO_NAME); private static final Log logger = Log.getInstance(LOG_INFO_NAME);
private Map<String, String> configParams; private Map<String, String> configParams;
@ -34,6 +34,10 @@ public class AfterApproveSyncImsRule implements IRule<PMOAggVO> {
// IMS数据源 // IMS数据源
public BaseDAO imsDao; public BaseDAO imsDao;
public AfterApproveSyncImsRule(String auditFlag) {
this.auditFlag = auditFlag;
}
/** /**
* 获取IMS数据源 * 获取IMS数据源
*/ */
@ -66,11 +70,19 @@ public class AfterApproveSyncImsRule implements IRule<PMOAggVO> {
"nnum", "nastnum", "nplanputastnum", "nplanputnum", "nmmastnum", "nmmnum", "nnum", "nastnum", "nplanputastnum", "nplanputnum", "nmmastnum", "nmmnum",
"ninastnum", "ninnum" "ninastnum", "ninnum"
)); ));
// 表头-翻译字段
private Set<String> headTransferFields = new HashSet<>(Arrays.asList(
"pk_org", "cplanfactoryid", "approver", "billmaker", "creator"
));
// 表体-定义数值类型字段列表 // 表体-定义数值类型字段列表
Set<String> bodyNumFields = new HashSet<>(Arrays.asList( private Set<String> bodyNumFields = new HashSet<>(Arrays.asList(
"nnum", "nastnum", "nplanputastnum", "nplanputnum", "nmmastnum", "nmmnum", "nnum", "nastnum", "nplanputastnum", "nplanputnum", "nmmastnum", "nmmnum",
"ninastnum", "ninnum" "ninastnum", "ninnum"
)); ));
// 表体-翻译字段
private Set<String> bodyTransferFields = new HashSet<>(Arrays.asList(
"pk_org", "cmaterialvid", "cunitid", "castunitid", "cdeptid", "mocloser", "cinwarehouseid", "vbdef31"
));
@Override @Override
@ -98,9 +110,8 @@ public class AfterApproveSyncImsRule implements IRule<PMOAggVO> {
String pkOrg = pmoHeadVO.getPk_org(); String pkOrg = pmoHeadVO.getPk_org();
String orgCode = MyHelper.transferField(OrgVO.getDefaultTableName(), OrgVO.CODE, OrgVO.PK_ORG, pkOrg); String orgCode = MyHelper.transferField(OrgVO.getDefaultTableName(), OrgVO.CODE, OrgVO.PK_ORG, pkOrg);
if (checkIfOrg(orgCode, configParams)) { if (checkIfOrg(orgCode, configParams)) {
// continue; continue;
} }
// 获取主键值 // 获取主键值
String headPrimaryKeyValue = (String) pmoHeadVO.getAttributeValue("cpmohid"); String headPrimaryKeyValue = (String) pmoHeadVO.getAttributeValue("cpmohid");
@ -197,7 +208,7 @@ public class AfterApproveSyncImsRule implements IRule<PMOAggVO> {
} }
private SQLParameter buildHeadParameters(PMOHeadVO pmoHeadVO, boolean isUpdate) { private SQLParameter buildHeadParameters(PMOHeadVO pmoHeadVO, boolean isUpdate) throws BusinessException {
SQLParameter headParams = new SQLParameter(); SQLParameter headParams = new SQLParameter();
if (isUpdate) { if (isUpdate) {
@ -210,14 +221,20 @@ public class AfterApproveSyncImsRule implements IRule<PMOAggVO> {
Object value = pmoHeadVO.getAttributeValue(column); Object value = pmoHeadVO.getAttributeValue(column);
if (headNumFields.contains(column)) { if (headNumFields.contains(column)) {
value = skipNullForNumber(value); value = skipNullForNumber(value);
} else if (headTransferFields.contains(column)) {
value = transferHeadFields(column, value);
} else { } else {
value = skipNull(value); value = skipNull(value);
} }
headParams.addParam(value); headParams.addParam(value);
} }
} }
// status C=创建U=修改2=处理完成 // status 同步状态BIP:C-创建;U-修改D-删除 IMS:2-MES单据接收完成
headParams.addParam("U"); // 更新状态为U(修改) if ("N".equals(auditFlag)) {
headParams.addParam("D");
} else {
headParams.addParam("U"); // 更新状态为U(修改)
}
// 添加主键作为WHERE条件 // 添加主键作为WHERE条件
headParams.addParam(pmoHeadVO.getAttributeValue("cpmohid")); headParams.addParam(pmoHeadVO.getAttributeValue("cpmohid"));
} else { } else {
@ -229,19 +246,21 @@ public class AfterApproveSyncImsRule implements IRule<PMOAggVO> {
Object value = pmoHeadVO.getAttributeValue(column); Object value = pmoHeadVO.getAttributeValue(column);
if (headNumFields.contains(column)) { if (headNumFields.contains(column)) {
value = skipNullForNumber(value); value = skipNullForNumber(value);
} else if (headTransferFields.contains(column)) {
value = transferHeadFields(column, value);
} else { } else {
value = skipNull(value); value = skipNull(value);
} }
headParams.addParam(value); headParams.addParam(value);
} }
// status C=创建U=修改2=处理完成 // status 同步状态BIP:C-创建;U-修改D-删除 IMS:2-MES单据接收完成
headParams.addParam("C"); // 默认状态为C(新增) headParams.addParam("C"); // 默认状态为C(新增)
} }
return headParams; return headParams;
} }
private SQLParameter buildBodyParameters(PMOItemVO item, PMOHeadVO pmoHeadVO, boolean isUpdate) { private SQLParameter buildBodyParameters(PMOItemVO item, PMOHeadVO pmoHeadVO, boolean isUpdate) throws BusinessException {
SQLParameter bodyParams = new SQLParameter(); SQLParameter bodyParams = new SQLParameter();
if (isUpdate) { if (isUpdate) {
@ -257,6 +276,8 @@ public class AfterApproveSyncImsRule implements IRule<PMOAggVO> {
// 数值字段需要特殊处理空值 // 数值字段需要特殊处理空值
if (bodyNumFields.contains(column)) { if (bodyNumFields.contains(column)) {
value = skipNullForNumber(value); value = skipNullForNumber(value);
} else if (bodyTransferFields.contains(column)) {
value = transferBodyFields(column, value);
} else { } else {
value = skipNull(value); value = skipNull(value);
} }
@ -277,6 +298,8 @@ public class AfterApproveSyncImsRule implements IRule<PMOAggVO> {
// 数值字段需要特殊处理空值 // 数值字段需要特殊处理空值
if (bodyNumFields.contains(column)) { if (bodyNumFields.contains(column)) {
value = skipNullForNumber(value); value = skipNullForNumber(value);
} else if (bodyTransferFields.contains(column)) {
value = transferBodyFields(column, value);
} else { } else {
value = skipNull(value); value = skipNull(value);
} }
@ -352,7 +375,60 @@ public class AfterApproveSyncImsRule implements IRule<PMOAggVO> {
NCCForUAPLogger.debug("gyIms-PMO-bodySql = " + bodySql); NCCForUAPLogger.debug("gyIms-PMO-bodySql = " + bodySql);
} }
} }
// logger.error("gyIms-PMO-res = " + result); }
private String transferHeadFields(String column, Object value) throws BusinessException {
String result = "";
if (value == null) {
return "";
}
String userSql = " select user_code from sm_user where dr = 0 and cuserid = '[value]' ";
if ("approver".equals(column) || "billmaker".equals(column) || "creator".equals(column)) {
userSql = userSql.replace("[value]", value.toString());
result = (String) baseDAO.executeQuery(userSql, new ColumnProcessor());
} else if ("pk_org".equals(column)) {
String sql = " select code from org_factory where nvl(dr,0) = 0 and pk_factory = '[value]' ";
sql = sql.replace("[value]", value.toString());
result = (String) baseDAO.executeQuery(sql, new ColumnProcessor());
} else if ("cplanfactoryid".equals(column)) {
String sql = " select code from org_orgs where nvl(dr,0) = 0 and pk_org = '[value]' ";
sql = sql.replace("[value]", value.toString());
result = (String) baseDAO.executeQuery(sql, new ColumnProcessor());
}
return result;
}
private String transferBodyFields(String column, Object value) throws BusinessException {
String result = "";
if (value == null || "".equals(value) || "~".equals(value)) {
return "";
}
String userSql = " select user_code from sm_user where dr = 0 and cuserid = '[value]' ";
if ("mocloser".equals(column)) {
userSql = userSql.replace("[value]", value.toString());
result = (String) baseDAO.executeQuery(userSql, new ColumnProcessor());
} else if ("pk_org".equals(column)) {
String sql = " select code from org_orgs where nvl(dr,0) = 0 and pk_org = '[value]' ";
sql = sql.replace("[value]", value.toString());
result = (String) baseDAO.executeQuery(sql, new ColumnProcessor());
} else if ("cmaterialvid".equals(column)) {
String sql = " select code from bd_material where nvl(dr,0) = 0 and pk_material = '[value]' ";
sql = sql.replace("[value]", value.toString());
result = (String) baseDAO.executeQuery(sql, new ColumnProcessor());
} else if ("cunitid".equals(column) || "castunitid".equals(column)) {
String sql = " select code from bd_measdoc where nvl(dr,0) = 0 and pk_measdoc = '[value]' ";
sql = sql.replace("[value]", value.toString());
result = (String) baseDAO.executeQuery(sql, new ColumnProcessor());
} else if ("cdeptid".equals(column)) {
String sql = " select code from org_dept where nvl(dr,0) = 0 and pk_dept = '[value]' ";
sql = sql.replace("[value]", value.toString());
result = (String) baseDAO.executeQuery(sql, new ColumnProcessor());
} else if ("cinwarehouseid".equals(column) || "vbdef31".equals(column)) {
String sql = " select code from bd_stordoc where nvl(dr,0) = 0 and pk_stordoc = '[value]' ";
sql = sql.replace("[value]", value.toString());
result = (String) baseDAO.executeQuery(sql, new ColumnProcessor());
}
return result;
} }

View File

@ -0,0 +1,201 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package nc.impl.so.m30.action.main;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import nc.bs.pub.action.N_30_UNAPPROVE;
import nc.bs.scmpub.rule.VOSagaFrozenValidateRule;
import nc.bs.so.m30.maintain.rule.insert.RewritePromotePriceInsertRule;
import nc.bs.so.m30.plugin.Action30PlugInPoint;
import nc.bs.so.m30.rule.approve.CheckPush5Aor20Rule;
import nc.bs.so.m30.rule.approve.SaleOrderDeleteRmBeforeRule;
import nc.bs.so.m30.rule.atp.SaleOrderVOATPAfterRule;
import nc.bs.so.m30.rule.atp.SaleOrderVOATPBeforeRule;
import nc.bs.so.m30.rule.credit.RenovateARByHidsBeginRule;
import nc.bs.so.m30.rule.credit.RenovateARByHidsEndRule;
import nc.bs.so.m30.rule.m35.Rewrite35WhenUnApproveRule;
import nc.bs.so.m30.rule.me.SaleOrderVOUnApproveAfterRule;
import nc.bs.so.m30.rule.unapprove.BusiLog;
import nc.bs.so.m30.rule.unapprove.CheckUnApprovableCompensateRule;
import nc.bs.so.m30.rule.unapprove.CheckUnApprovableRule;
import nc.bs.so.m30.rule.unapprove.DeleteMessageRule;
import nc.bs.so.m30.rule.unapprove.UNApproveStateRule;
import nc.impl.pubapp.pattern.data.vo.VOUpdate;
import nc.impl.pubapp.pattern.rule.IRule;
import nc.impl.pubapp.pattern.rule.processer.AroundProcesser;
import nc.itf.scmpub.reference.uap.group.SysInitGroupQuery;
import nc.vo.credit.engrossmaintain.pub.action.M30EngrossAction;
import nc.vo.ml.NCLangRes4VoTransl;
import nc.vo.pub.lang.UFBoolean;
import nc.vo.pubapp.pattern.exception.ExceptionUtils;
import nc.vo.pubapp.pattern.log.TimeLog;
import nc.vo.scmpub.util.AppInfoContext;
import nc.vo.so.m30.entity.SaleOrderBVO;
import nc.vo.so.m30.entity.SaleOrderHVO;
import nc.vo.so.m30.entity.SaleOrderVO;
import nc.vo.so.pub.enumeration.BillStatus;
import nc.vo.so.pub.rule.SOPfStatusChgRule;
import nccloud.bs.so.mobile.saleorder.operation.rule.MobAfterUnApproveMessageRule;
public class UnApproveSaleOrderAction {
public UnApproveSaleOrderAction() {
}
public SaleOrderVO[] unApprove(SaleOrderVO[] bills, N_30_UNAPPROVE script) {
SaleOrderVO[] ret = null;
try {
AroundProcesser<SaleOrderVO> processer = new AroundProcesser(Action30PlugInPoint.UnApproveAction);
Integer oldbillstatus = bills[0].getParentVO().getFstatusflag();
TimeLog.logStart();
this.setAppInfoContext();
this.addBeforeRule(processer, oldbillstatus);
processer.before(bills);
TimeLog.info(NCLangRes4VoTransl.getNCLangRes().getStrByID("4006011_0", "04006011-0162"));
script.procUnApproveFlow(script.getPfParameterVO());
SaleOrderVO[] newbills = script.getVos();
this.updateNewBillStatus(newbills);
Integer newbillstatus = newbills[0].getParentVO().getFstatusflag();
TimeLog.logStart();
this.addAfterRule(processer, newbillstatus, oldbillstatus);
processer.after(newbills);
TimeLog.info(NCLangRes4VoTransl.getNCLangRes().getStrByID("4006011_0", "04006011-0163"));
this.clearAppInfoContext();
ret = newbills;
} catch (Exception ex) {
ExceptionUtils.wrappException(ex);
}
return ret;
}
private void updateNewBillStatus(SaleOrderVO[] newbills) {
List<String> pk_org = new ArrayList();
new HashMap();
for(SaleOrderVO vo : newbills) {
for(SaleOrderBVO bvo : vo.getChildrenVO()) {
String csettleorgid = bvo.getCsettleorgid();
if (!pk_org.contains(csettleorgid)) {
pk_org.add(csettleorgid);
}
}
}
Map<String, Boolean> isEnable = SysInitGroupQuery.isRMEnabled(pk_org);
for(SaleOrderVO vo : newbills) {
List<SaleOrderBVO> newbvo = new ArrayList();
for(SaleOrderBVO bvo : vo.getChildrenVO()) {
String csettleorgid = bvo.getCsettleorgid();
if (!isEnable.isEmpty() && !(Boolean)isEnable.get(csettleorgid)) {
bvo.setRmcontractbflag(UFBoolean.FALSE);
} else {
newbvo.add(bvo);
}
}
}
SOPfStatusChgRule statuschgrule = new SOPfStatusChgRule();
SaleOrderHVO[] updateheads = new SaleOrderHVO[newbills.length];
List<SaleOrderBVO> listbody = new ArrayList();
int i = 0;
for(SaleOrderVO ordervo : newbills) {
statuschgrule.changePfToBillStatus(ordervo);
updateheads[i] = ordervo.getParentVO();
for(SaleOrderBVO bvo : ordervo.getChildrenVO()) {
listbody.add(bvo);
}
}
String[] headupname = new String[]{"fstatusflag"};
VOUpdate<SaleOrderHVO> headupsrv = new VOUpdate();
headupsrv.update(updateheads, headupname);
String[] bodyupname = new String[]{"frowstatus", "rmcontractbflag"};
VOUpdate<SaleOrderBVO> bodyupsrv = new VOUpdate();
SaleOrderBVO[] updatebodys = (SaleOrderBVO[])listbody.toArray(new SaleOrderBVO[listbody.size()]);
bodyupsrv.update(updatebodys, bodyupname);
}
private void addAfterRule(AroundProcesser<SaleOrderVO> processer, Integer newbillstatus, Integer oldbillstatus) {
IRule<SaleOrderVO> rule = null;
if (SysInitGroupQuery.isCREDITEnabled()) {
IRule<SaleOrderVO> var6 = new RenovateARByHidsEndRule(M30EngrossAction.M30UnApprove);
processer.addAfterRule(var6);
}
if (BillStatus.FREE.equalsValue(newbillstatus) || BillStatus.NOPASS.equalsValue(newbillstatus) || BillStatus.AUDITING.equalsValue(newbillstatus)) {
IRule<SaleOrderVO> var7 = new UNApproveStateRule();
processer.addAfterRule(var7);
processer.addAfterRule(new DeleteMessageRule());
}
IRule<SaleOrderVO> var8 = new SaleOrderVOUnApproveAfterRule();
processer.addAfterRule(var8);
IRule<SaleOrderVO> var9 = new Rewrite35WhenUnApproveRule();
processer.addAfterRule(var9);
if (BillStatus.NOPASS.equalsValue(oldbillstatus)) {
boolean icEnable = SysInitGroupQuery.isICEnabled();
if (icEnable) {
IRule<SaleOrderVO> var10 = new SaleOrderVOATPAfterRule();
processer.addAfterRule(var10);
}
}
IRule<SaleOrderVO> var11 = new MobAfterUnApproveMessageRule();
processer.addAfterRule(var11);
processer.addAfterRule(new SaleOrderDeleteRmBeforeRule());
}
private void addBeforeRule(AroundProcesser<SaleOrderVO> processer, Integer oldbillstatus) {
IRule<SaleOrderVO> rule = new VOSagaFrozenValidateRule();
processer.addBeforeRule(rule);
IRule<SaleOrderVO> var5 = new CheckPush5Aor20Rule();
processer.addBeforeRule(var5);
IRule<SaleOrderVO> var6 = new CheckUnApprovableRule();
processer.addBeforeRule(var6);
IRule<SaleOrderVO> var7 = new CheckUnApprovableCompensateRule();
processer.addBeforeRule(var7);
if (SysInitGroupQuery.isCREDITEnabled()) {
IRule<SaleOrderVO> var8 = new RenovateARByHidsBeginRule(M30EngrossAction.M30UnApprove);
processer.addBeforeRule(var8);
}
IRule<SaleOrderVO> var9 = new BusiLog();
processer.addBeforeRule(var9);
if (BillStatus.NOPASS.equalsValue(oldbillstatus)) {
if (SysInitGroupQuery.isPRICEEnabled()) {
IRule<SaleOrderVO> var10 = new RewritePromotePriceInsertRule();
processer.addAfterRule(var10);
}
boolean icEnable = SysInitGroupQuery.isICEnabled();
if (icEnable) {
IRule<SaleOrderVO> var11 = new SaleOrderVOATPBeforeRule();
processer.addBeforeRule(var11);
}
}
}
private void setAppInfoContext() {
String buttonCode = AppInfoContext.getBtnCode();
if ("".equals(buttonCode) || null == buttonCode) {
AppInfoContext.setBtnCode("unappoveCenter");
}
}
private void clearAppInfoContext() {
AppInfoContext.setBtnCode((String)null);
}
}