From bb5fda7439b7bf049f1e5b8ea1b94c94edbc8762 Mon Sep 17 00:00:00 2001 From: "zhangxinah@yonyou.com" Date: Thu, 10 Apr 2025 11:12:04 +0800 Subject: [PATCH] =?UTF-8?q?2312=E4=BA=A7=E6=88=90=E5=93=81=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E6=8E=A5=E5=8F=A3=E4=BC=98=E5=85=88=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E4=BC=A0=E9=80=92=E8=BF=87=E6=9D=A5=E7=9A=84=E7=94=9F=E4=BA=A7?= =?UTF-8?q?=E9=83=A8=E9=97=A8-=E5=BC=A0=E9=91=AB0410?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nc/vo/ic/pub/rule/ICOrgFillRule.java | 154 ++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 ic/src/public/nc/vo/ic/pub/rule/ICOrgFillRule.java diff --git a/ic/src/public/nc/vo/ic/pub/rule/ICOrgFillRule.java b/ic/src/public/nc/vo/ic/pub/rule/ICOrgFillRule.java new file mode 100644 index 0000000..bf3612b --- /dev/null +++ b/ic/src/public/nc/vo/ic/pub/rule/ICOrgFillRule.java @@ -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 + */ +public class ICOrgFillRule extends ICRule { + + /** + * + */ + + @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 setcbiz = new HashSet(); + 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> deptMap = PsndocPubService + .queryDeptIDByPsndocIDs(setcbiz.toArray(new String[setcbiz.size()])); + if (null != deptMap && deptMap.size() > 0) { + Set vids = new HashSet(); + for (String cbi : deptMap.keySet()) { + List deptids = deptMap.get(cbi); + if (!ValueCheckUtil.isNullORZeroLength(deptids)) { + vids.addAll(deptids); + } + } + Map 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 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 orgvidmap = OrgUnitPubService.getOrgVid(orgset.toArray(new String[orgset.size()])); + Map orgCorpmap = StockOrgPubService + .queryCorpIDByStockOrgIDs(orgset.toArray(new String[orgset.size()])); + Map cropvidmap = new HashMap(); + 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))); + } + } + + } + +}