2312产成品入库接口优先使用传递过来的生产部门-张鑫0410
This commit is contained in:
parent
439f43cd12
commit
bb5fda7439
|
@ -0,0 +1,154 @@
|
|||
package nc.vo.ic.pub.rule;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import nc.bs.framework.common.InvocationInfoProxy;
|
||||
import nc.bs.ic.person.WHManagerAndDeptSetter;
|
||||
import nc.bs.ic.pub.base.ICRule;
|
||||
import nc.itf.scmpub.reference.uap.bd.psn.PsndocPubService;
|
||||
import nc.itf.scmpub.reference.uap.org.DeptPubService;
|
||||
import nc.itf.scmpub.reference.uap.org.OrgUnitPubService;
|
||||
import nc.itf.scmpub.reference.uap.org.StockOrgPubService;
|
||||
import nc.itf.scmpub.reference.uap.rbac.UserManageQuery;
|
||||
import nc.vo.bd.psn.PsndocVO;
|
||||
import nc.vo.ic.pub.define.ICPubMetaNameConst;
|
||||
import nc.vo.ic.pub.util.StringUtil;
|
||||
import nc.vo.ic.pub.util.ValueCheckUtil;
|
||||
import nc.vo.pubapp.AppContext;
|
||||
import nc.vo.pubapp.pattern.model.entity.bill.AbstractBill;
|
||||
import nc.vo.pubapp.pattern.pub.PubAppTool;
|
||||
|
||||
/**
|
||||
* @@description
|
||||
* @author lanli6
|
||||
* @date 2023年6月11日
|
||||
* @version ncc1.0
|
||||
* @param <E>
|
||||
*/
|
||||
public class ICOrgFillRule<E extends AbstractBill> extends ICRule<E> {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
||||
@Override
|
||||
public void process(E[] vos) {
|
||||
// 填充组织,人员,部门和日期
|
||||
setorgrelation(vos);
|
||||
|
||||
setCbizDept(vos);
|
||||
|
||||
// 设置库管员
|
||||
setCwhsmanagerid(vos);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置默认库管员
|
||||
*
|
||||
* @param vos
|
||||
*/
|
||||
private void setCwhsmanagerid(E[] vos) {
|
||||
String key = InvocationInfoProxy.getInstance().getUserId();
|
||||
PsndocVO psnvo = WHManagerAndDeptSetter.queryPsndocByUserid(key);
|
||||
boolean powerEnable = WHManagerAndDeptSetter.isPowerEnable(key, psnvo);
|
||||
for (E vo : vos) {
|
||||
String cwhsmanagerid = (String) vo.getParent().getAttributeValue(ICPubMetaNameConst.CWHSMANAGERID);
|
||||
if (!PubAppTool.isNull(cwhsmanagerid)) {
|
||||
continue;
|
||||
}
|
||||
String pk_org = (String) vo.getParent().getAttributeValue(ICPubMetaNameConst.PK_ORG);
|
||||
if (null != psnvo && powerEnable && null != pk_org && StringUtil.isStringEqual(pk_org, psnvo.getPk_org())) {
|
||||
String pk_psndoc = psnvo.getPk_psndoc();
|
||||
vo.getParent().setAttributeValue(ICPubMetaNameConst.CWHSMANAGERID, pk_psndoc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置默认人员部门
|
||||
*/
|
||||
private void setCbizDept(E[] vos) {
|
||||
Set<String> setcbiz = new HashSet<String>();
|
||||
for (E vo : vos) {
|
||||
String cbizid = (String) vo.getParentVO().getAttributeValue(ICPubMetaNameConst.CBIZID);
|
||||
if (PubAppTool.isNull(cbizid)) {
|
||||
cbizid = UserManageQuery.queryPsndocByUserid(AppContext.getInstance().getPkUser());
|
||||
}
|
||||
if (cbizid != null) {
|
||||
vo.getParentVO().setAttributeValue(ICPubMetaNameConst.CBIZID, cbizid);
|
||||
setcbiz.add(cbizid);
|
||||
}
|
||||
}
|
||||
if (null == setcbiz || setcbiz.size() <= 0) {
|
||||
return;
|
||||
}
|
||||
// 查询部门
|
||||
Map<String, List<String>> deptMap = PsndocPubService
|
||||
.queryDeptIDByPsndocIDs(setcbiz.toArray(new String[setcbiz.size()]));
|
||||
if (null != deptMap && deptMap.size() > 0) {
|
||||
Set<String> vids = new HashSet<String>();
|
||||
for (String cbi : deptMap.keySet()) {
|
||||
List<String> deptids = deptMap.get(cbi);
|
||||
if (!ValueCheckUtil.isNullORZeroLength(deptids)) {
|
||||
vids.addAll(deptids);
|
||||
}
|
||||
}
|
||||
Map<String, String> deptvidMap = new HashMap<>();
|
||||
if (!ValueCheckUtil.isNullORZeroLength(vids)) {
|
||||
deptvidMap = DeptPubService.getLastVIDSByDeptIDS(vids.toArray(new String[vids.size()]));
|
||||
}
|
||||
for (E vo : vos) {
|
||||
String cbizid = (String) vo.getParentVO().getAttributeValue(ICPubMetaNameConst.CBIZID);
|
||||
// zhangxinah 如果传了值了,就不覆盖了
|
||||
if (vo.getParentVO().getAttributeValue(ICPubMetaNameConst.CDPTVID) == null) {
|
||||
vo.getParentVO().setAttributeValue(ICPubMetaNameConst.CDPTID, deptMap.get(cbizid).get(0));
|
||||
vo.getParentVO().setAttributeValue(ICPubMetaNameConst.CDPTVID,
|
||||
deptvidMap.get(deptMap.get(cbizid).get(0)));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据销售组织old设置vid,补充公司CORPOID
|
||||
*/
|
||||
private void setorgrelation(E[] vos) {
|
||||
Set<String> orgset = new HashSet<>();
|
||||
for (E vo : vos) {
|
||||
String pk_org = (String) vo.getParent().getAttributeValue(ICPubMetaNameConst.PK_ORG);
|
||||
if (null != pk_org) {
|
||||
orgset.add(pk_org);
|
||||
}
|
||||
}
|
||||
if (null == orgset || orgset.size() <= 0) {
|
||||
return;
|
||||
}
|
||||
Map<String, String> orgvidmap = OrgUnitPubService.getOrgVid(orgset.toArray(new String[orgset.size()]));
|
||||
Map<String, String> orgCorpmap = StockOrgPubService
|
||||
.queryCorpIDByStockOrgIDs(orgset.toArray(new String[orgset.size()]));
|
||||
Map<String, String> cropvidmap = new HashMap<String, String>();
|
||||
if (null != orgCorpmap && orgCorpmap.size() > 0) {
|
||||
cropvidmap = OrgUnitPubService.getOrgVid(orgCorpmap.keySet().toArray(new String[orgCorpmap.size()]));
|
||||
}
|
||||
for (E vo : vos) {
|
||||
String pk_org = (String) vo.getParent().getAttributeValue(ICPubMetaNameConst.PK_ORG);
|
||||
String pk_org_v = (String) vo.getParent().getAttributeValue(ICPubMetaNameConst.PK_ORG_V);
|
||||
// 设置pk_org_v
|
||||
if (null != pk_org && null == pk_org_v) {
|
||||
vo.getParentVO().setAttributeValue(ICPubMetaNameConst.PK_ORG, pk_org);
|
||||
vo.getParentVO().setAttributeValue(ICPubMetaNameConst.PK_ORG_V, orgvidmap.get(pk_org));
|
||||
}
|
||||
// 设置公司
|
||||
if (null != orgCorpmap && orgCorpmap.size() > 0) {
|
||||
vo.getParentVO().setAttributeValue(ICPubMetaNameConst.CORPOID, orgCorpmap.get(pk_org));
|
||||
vo.getParentVO().setAttributeValue(ICPubMetaNameConst.CORPVID, cropvidmap.get(orgCorpmap.get(pk_org)));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue