Compare commits

...

3 Commits

2 changed files with 116 additions and 28 deletions

View File

@ -12,13 +12,12 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import nc.bs.framework.common.NCLocator; import nc.bs.framework.common.NCLocator;
import nc.bs.mmpac.pmo.pac0002.bp.service.PMOBPService; import nc.bs.mmpac.pmo.pac0002.bp.service.PMOBPService;
import nc.bs.trade.business.HYPubBO;
import nc.impl.pubapp.pattern.rule.IRule; import nc.impl.pubapp.pattern.rule.IRule;
import nc.pub.billcode.itf.IBillcodeManage; import nc.pub.billcode.itf.IBillcodeManage;
import nc.uif.pub.exception.UifException;
import nc.util.mmf.busi.service.MaterialPubService; import nc.util.mmf.busi.service.MaterialPubService;
import nc.util.mmf.framework.base.MMArrayUtil; import nc.util.mmf.framework.base.*;
import nc.util.mmf.framework.base.MMCollectionUtil;
import nc.util.mmf.framework.base.MMMapUtil;
import nc.util.mmf.framework.base.MMValueCheck;
import nc.vo.bd.material.prod.MaterialProdVO; import nc.vo.bd.material.prod.MaterialProdVO;
import nc.vo.mmpac.pickm.param.PickmTransParamForMO; import nc.vo.mmpac.pickm.param.PickmTransParamForMO;
import nc.vo.mmpac.pmo.pac0002.constant.PMOConstLang; import nc.vo.mmpac.pmo.pac0002.constant.PMOConstLang;
@ -27,6 +26,7 @@ import nc.vo.mmpac.pmo.pac0002.entity.PMOHeadVO;
import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO; import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO;
import nc.vo.mmpac.pmo.pac0002.enumeration.PMOFItemStatusEnum; import nc.vo.mmpac.pmo.pac0002.enumeration.PMOFItemStatusEnum;
import nc.vo.mmpac.pmo.pac0002.util.PMOTransferUtil; import nc.vo.mmpac.pmo.pac0002.util.PMOTransferUtil;
import nc.vo.org.OrgVO;
import nc.vo.pd.pd0332.entity.PbEventParamVO; import nc.vo.pd.pd0332.entity.PbEventParamVO;
import nc.vo.pd.pd0332.entity.PbParamVO; import nc.vo.pd.pd0332.entity.PbParamVO;
import nc.vo.pub.BusinessException; import nc.vo.pub.BusinessException;
@ -38,10 +38,14 @@ public class PMOFillBatchCodeRule implements IRule<PMOAggVO> {
} }
public void process(PMOAggVO[] aggvos) { public void process(PMOAggVO[] aggvos) {
this.fillBatchCode(aggvos); try {
this.fillBatchCode(aggvos);
} catch (UifException e) {
throw new RuntimeException(e);
}
} }
private void fillBatchCode(PMOAggVO[] aggvos) { private void fillBatchCode(PMOAggVO[] aggvos) throws UifException {
PMOItemVO[] filteritems = this.getItemByBatchCode(aggvos); PMOItemVO[] filteritems = this.getItemByBatchCode(aggvos);
if (!MMArrayUtil.isEmpty(filteritems)) { if (!MMArrayUtil.isEmpty(filteritems)) {
Map<String, PMOHeadVO> headMap = new HashMap(); Map<String, PMOHeadVO> headMap = new HashMap();
@ -81,6 +85,8 @@ public class PMOFillBatchCodeRule implements IRule<PMOAggVO> {
needbatcodeList.add(itemVO); needbatcodeList.add(itemVO);
} else if (PMOFItemStatusEnum.PLAN.equalsValue(itemVO.getFitemstatus()) && provo.getPchscscd() == 3) { } else if (PMOFItemStatusEnum.PLAN.equalsValue(itemVO.getFitemstatus()) && provo.getPchscscd() == 3) {
needbatcodeList.add(itemVO); needbatcodeList.add(itemVO);
} else if (PMOFItemStatusEnum.PLAN.equalsValue(itemVO.getFitemstatus()) && provo.getPchscscd() == 0) {
needbatcodeList.add(itemVO);
} }
} }
} }
@ -116,14 +122,24 @@ public class PMOFillBatchCodeRule implements IRule<PMOAggVO> {
} }
} }
private void genBatchCode(PMOItemVO[] paravos, Map<String, PMOHeadVO> headMap) { private void genBatchCode(PMOItemVO[] paravos, Map<String, PMOHeadVO> headMap) throws UifException {
if (!MMArrayUtil.isEmpty(paravos)) { if (!MMArrayUtil.isEmpty(paravos)) {
List<PMOItemVO> itemList = new ArrayList(); List<PMOItemVO> itemList = new ArrayList();
List<PMOItemVO> xbitemList = new ArrayList();
HYPubBO hybo = new HYPubBO();
String org = hybo.findColValue("org_adminorg", "pk_adminorg", " code = 'C030' ") + "";
for(PMOItemVO vo : paravos) { for(PMOItemVO vo : paravos) {
itemList.add(vo); if(vo.getPk_org().equals(org)) {
xbitemList.add(vo);
}else{
itemList.add(vo);
}
} }
if (itemList.size() > 0) { if (itemList.size() > 0) {
PMOItemVO[] vos = (PMOItemVO[])itemList.toArray(new PMOItemVO[itemList.size()]); PMOItemVO[] vos = (PMOItemVO[])itemList.toArray(new PMOItemVO[itemList.size()]);
IBillcodeManage billcodeManage = (IBillcodeManage)NCLocator.getInstance().lookup(IBillcodeManage.class); IBillcodeManage billcodeManage = (IBillcodeManage)NCLocator.getInstance().lookup(IBillcodeManage.class);
@ -188,6 +204,70 @@ public class PMOFillBatchCodeRule implements IRule<PMOAggVO> {
} }
} }
if (xbitemList.size() > 0) {
PMOItemVO[] vos = (PMOItemVO[])xbitemList.toArray(new PMOItemVO[itemList.size()]);
IBillcodeManage billcodeManage = (IBillcodeManage)NCLocator.getInstance().lookup(IBillcodeManage.class);
String[] billcodes = null;
try {
billcodes = billcodeManage.getBatchBillCodes_RequiresNew("55A2-2", vos[0].getPk_group(), vos[0].getPk_org(), vos[0],1);
} catch (BusinessException ex) {
ExceptionUtils.wrappException(ex);
}
if (MMStringUtil.isEmpty(billcodes[0])) {
ExceptionUtils.wrappBusinessException(PMOConstLang.getMSG_RULE_PUT_BATCHCODECREATE_CHECK());
}
int i = 0;
List<PbEventParamVO> eparaList = new ArrayList();
for(PMOItemVO vo : vos) {
vo.setVbatchcode(billcodes[0]);
if (!MMValueCheck.isEmpty(vo.getVbatchcode())) {
PbParamVO paravo = PMOTransferUtil.getBatchParamVO((PMOHeadVO)headMap.get(vo.getCpmohid()), vo, false);
PbEventParamVO eparavo = new PbEventParamVO(paravo, (PbParamVO)null, (PbParamVO)null, (PbParamVO)null);
eparaList.add(eparavo);
}
}
Map<String, PbParamVO> ResultParamVOMap = PMOBPService.getIPbMaintainServiceForPac().batchSavePdParamVO((PbEventParamVO[])eparaList.toArray(new PbEventParamVO[eparaList.size()]));
if (MMMapUtil.isEmpty(ResultParamVOMap)) {
return;
}
for(PMOItemVO item : vos) {
PMOHeadVO headvo = (PMOHeadVO)headMap.get(item.getCpmohid());
if (!MMValueCheck.isEmpty(item.getVbatchcode())) {
String var10001 = headvo.getPk_org();
PbParamVO paravo = (PbParamVO)ResultParamVOMap.get(var10001 + headvo.getVbillcode() + item.getVrowno());
if (!MMValueCheck.isEmpty(paravo)) {
item.setVbatchcode(paravo.getVprodbatchcode());
item.setCbatchid(paravo.getPk_batchcode());
}
}
}
try {
List<PickmTransParamForMO> paramList = new ArrayList();
for(PMOItemVO vo : vos) {
PickmTransParamForMO param = new PickmTransParamForMO();
param.setSourceBillID(vo.getCpmohid());
param.setSourceBillRowID(vo.getCmoid());
param.setBatchCode(vo.getVbatchcode());
param.setBatchid(vo.getCbatchid());
paramList.add(param);
}
if (paramList.size() > 0) {
PMOBPService.getIPpickmBusinessServiceForPmo().updatePickmBatchCode((PickmTransParamForMO[])paramList.toArray(new PickmTransParamForMO[0]));
}
} catch (Exception e) {
ExceptionUtils.wrappException(e);
}
}
} }
} }
} }

View File

@ -37,7 +37,7 @@ import java.util.Map;
public class AfterApprovingSynchronizeRuleQMS implements IRule<SaleOrderVO> { public class AfterApprovingSynchronizeRuleQMS implements IRule<SaleOrderVO> {
private static final String LOG_INFO_NAME = "qyMesLog"; private static final String LOG_INFO_NAME = "qyMesLog";
private static final Log logger = Log.getInstance(LOG_INFO_NAME); private static final Log logger = Log.getInstance(LOG_INFO_NAME);
private static final String reqUrl = "IF_QyErpApi.ashx?action=addxsht"; private static final String reqUrl = "/IF_QyErpApi.ashx?action=addxsht";
private Map<String, String> configParams; private Map<String, String> configParams;
@ -79,13 +79,17 @@ public class AfterApprovingSynchronizeRuleQMS implements IRule<SaleOrderVO> {
SaleOrderHVO pmoHeadVO = vo.getParentVO(); SaleOrderHVO pmoHeadVO = vo.getParentVO();
SaleOrderBVO[] itemVOS=vo.getChildrenVO(); SaleOrderBVO[] itemVOS=vo.getChildrenVO();
singleObj.put("batchid",now.toString()); singleObj.put("batchid",now);
singleObj.put("hth",pmoHeadVO.getVdef6()); singleObj.put("hth",pmoHeadVO.getVdef6());
singleObj.put("fplx",pmoHeadVO.getDbilldate()); singleObj.put("fplx",pmoHeadVO.getDbilldate().toString().substring(0,10));
String sql = " select name from bd_psndoc where cuserid = '" + pmoHeadVO.getCemployeeid() + "' "; if(null !=pmoHeadVO.getCemployeeid()){
String billmakerName = (String) baseDAO.executeQuery(sql, new ColumnProcessor()); String sql = " select name from bd_psndoc where cuserid = '" + pmoHeadVO.getCemployeeid() + "' ";
String billmakerName = (String) baseDAO.executeQuery(sql, new ColumnProcessor());
singleObj.put("xsy",billmakerName); singleObj.put("xsy",billmakerName);
}else{
singleObj.put("xsy","");
}
singleObj.put("dhdwid",pmoHeadVO.getCcustomerid()); singleObj.put("dhdwid",pmoHeadVO.getCcustomerid());
String customersql = " select name from bd_customer where pk_customer = '" + pmoHeadVO.getCcustomerid() + "' "; String customersql = " select name from bd_customer where pk_customer = '" + pmoHeadVO.getCcustomerid() + "' ";
@ -97,7 +101,7 @@ public class AfterApprovingSynchronizeRuleQMS implements IRule<SaleOrderVO> {
String lrrName = (String) baseDAO.executeQuery(lrrsql, new ColumnProcessor()); String lrrName = (String) baseDAO.executeQuery(lrrsql, new ColumnProcessor());
singleObj.put("lrr",lrrName); singleObj.put("lrr",lrrName);
singleObj.put("lrrq",pmoHeadVO.getDmakedate()); singleObj.put("lrrq",pmoHeadVO.getDmakedate().toString().substring(0,10));
singleObj.put("bz",pmoHeadVO.getVnote()); singleObj.put("bz",pmoHeadVO.getVnote());
// ´¦ÀíContentÊý×é // ´¦ÀíContentÊý×é
JSONArray contentArray = new JSONArray(); JSONArray contentArray = new JSONArray();
@ -110,20 +114,24 @@ public class AfterApprovingSynchronizeRuleQMS implements IRule<SaleOrderVO> {
// //
// Object name = hybo.findColValue("bd_material", "name", "pk_material = '"+item.getCmaterialvid()+"' "); // Object name = hybo.findColValue("bd_material", "name", "pk_material = '"+item.getCmaterialvid()+"' ");
String wlsql = " select code,name,materialspec,materialtype from bd_material where pk_material = '" + item.getCmaterialvid() + "' "; String wlsql = " select code,name,materialspec,materialtype from bd_material where pk_material = '" + item.getCmaterialvid() + "' ";
Map<String,Object> mrlmap = (Map<String, Object>) baseDAO.executeQuery(wlsql, new ColumnProcessor()); Map<String,Object> mrlmap = (Map<String, Object>) baseDAO.executeQuery(wlsql, new MapProcessor());
itemObj.put("wlbh", mrlmap.get("code")); itemObj.put("wlbh", mrlmap.get("code"));
itemObj.put("wlmc", mrlmap.get("name")); itemObj.put("wlmc", mrlmap.get("name"));
itemObj.put("wlxhgg", mrlmap.get("materialspec")+(String)mrlmap.get("materialtype")); itemObj.put("wlxhgg", ((String)mrlmap.get("materialspec")!=null ? mrlmap.get("materialspec").toString() : "" )+((String)mrlmap.get("materialtype")!=null ? mrlmap.get("materialtype").toString() : "" ));
itemObj.put("dhsl", item.getNastnum()); itemObj.put("dhsl", item.getNastnum().doubleValue());
itemObj.put("xsj", item.getNqtorigtaxprice()); itemObj.put("xsj", item.getNqtorigtaxprice().doubleValue());
itemObj.put("bxzje", item.getNqtorigtaxprice()); itemObj.put("bxzje", item.getNqtorigtaxprice().doubleValue());
itemObj.put("jhrq", item.getDsenddate()); itemObj.put("jhrq", item.getDsenddate().toString().substring(0,10));
itemObj.put("bz", item.getVrownote()); itemObj.put("bz", item.getVrownote());
Object pk_project = hybo.findColValue("bd_project", "project_name", " pk_project = '" + item.getCprojectid() + "' ");
itemObj.put("xmmc", pk_project);
contentArray.add(itemObj); contentArray.add(itemObj);
} }
singleObj.put("Content", contentArray); singleObj.put("Content", contentArray);
/* /*
{ {
"batchid": "XS202408001", "batchid": "XS202408001",
@ -165,18 +173,18 @@ public class AfterApprovingSynchronizeRuleQMS implements IRule<SaleOrderVO> {
SerializerFeature.WriteMapNullValue, SerializerFeature.WriteMapNullValue,
SerializerFeature.WriteNullStringAsEmpty SerializerFeature.WriteNullStringAsEmpty
); );
logger.error("QMS-Material-param = " + jsonStr); logger.error("QMS-SaleOrder-param = " + jsonStr);
NCCForUAPLogger.debug("QMS-Material-param = " + jsonStr); NCCForUAPLogger.debug("QMS-SaleOrder-param = " + jsonStr);
String baseUrl = configParams.get("qmsBaseUrl"); String baseUrl = configParams.get("qmsBaseUrl");
String requestUrl = baseUrl + reqUrl; String requestUrl = baseUrl + reqUrl;
logger.error("QMS-Material-url = " + requestUrl); logger.error("QMS-SaleOrder-url = " + requestUrl);
String result = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, jsonStr); String result = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, jsonStr);
JSONObject resultObj = JSONObject.parseObject(result); JSONObject resultObj = JSONObject.parseObject(result);
logger.error("QMS-Material-res = " + result); logger.error("QMS-SaleOrder-res = " + result);
if (!"success".equals(resultObj.getString("success"))) { if (!"true".equals(resultObj.getString("success"))) {
// throw new BusinessException("QMS-Material-error:" + resultObj.getString("msg")); logger.error("QMS-SaleOrder-error,result[" + resultObj.toJSONString() + "]");
logger.error("QMS-Material-error,result[" + resultObj.toJSONString() + "]"); throw new BusinessException("QMS-SaleOrder-error:" + resultObj.getString("message"));
} }
} }