From ef20a973a6092aa31e603adeab999e5271e423fd Mon Sep 17 00:00:00 2001 From: mzr Date: Sat, 27 Sep 2025 11:15:12 +0800 Subject: [PATCH] =?UTF-8?q?MaterialStockAssignToOrgService=E6=A0=87?= =?UTF-8?q?=E5=93=81=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MaterialStockAssignToOrgService.java | 396 ++++++++++++++++++ 1 file changed, 396 insertions(+) create mode 100644 uapbd/src/private/nc/impl/bd/material/stock/MaterialStockAssignToOrgService.java diff --git a/uapbd/src/private/nc/impl/bd/material/stock/MaterialStockAssignToOrgService.java b/uapbd/src/private/nc/impl/bd/material/stock/MaterialStockAssignToOrgService.java new file mode 100644 index 00000000..0ed06270 --- /dev/null +++ b/uapbd/src/private/nc/impl/bd/material/stock/MaterialStockAssignToOrgService.java @@ -0,0 +1,396 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by FernFlower decompiler) +// + +package nc.impl.bd.material.stock; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import nc.bs.bd.assignservice.BDAssignToOrgService; +import nc.bs.bd.pub.util.BaseDocVoConvertUtil; +import nc.bs.bd.util.ExBeanNameTabVOMapUtil; +import nc.bs.bd.util.TabVOInfoUtil; +import nc.bs.dao.DAOException; +import nc.bs.framework.common.NCLocator; +import nc.itf.bd.material.pf.IMaterialPfQueryService; +import nc.jdbc.framework.SQLParameter; +import nc.jdbc.framework.processor.ColumnListProcessor; +import nc.vo.bd.errorlog.ErrorLogUtil; +import nc.vo.bd.material.MarasstIndexCalculdateUtil; +import nc.vo.bd.material.MaterialPFBaseVO; +import nc.vo.bd.material.MaterialVO; +import nc.vo.bd.material.marassistant.MarAssistantVO; +import nc.vo.bd.material.pf.MaterialPfVO; +import nc.vo.bd.material.stock.MaterialStockPFVO; +import nc.vo.bd.material.stock.MaterialStockVO; +import nc.vo.bd.material.stock.MaterialWarhPFVO; +import nc.vo.bd.material.stock.MaterialWarhVO; +import nc.vo.bd.pub.sqlutil.BDSqlInUtil; +import nc.vo.pub.BusinessException; +import nc.vo.pub.SuperVO; +import nc.vo.pub.lang.UFBoolean; +import nc.vo.util.BDVOEntityUtil; +import nccloud.commons.collections.CollectionUtils; +import nccloud.commons.collections.MapUtils; +import nccloud.commons.lang.ArrayUtils; +import nccloud.commons.lang.StringUtils; +import org.apache.commons.collections4.Predicate; + +public class MaterialStockAssignToOrgService extends BDAssignToOrgService { + private List codeList = new ArrayList(); + + public MaterialStockAssignToOrgService() { + } + + public void init() { + super.init(); + this.addQueryBaseField(new String[]{"materialmgt"}); + this.addQueryBaseField(new String[]{"fee"}); + this.addQueryBaseField(new String[]{"discountflag"}); + this.addQueryBaseField(new String[]{"pk_measdoc"}); + } + + public void copyAssignData(SuperVO copyBaseVO, String pk_source, ErrorLogUtil util) throws BusinessException { + this.queryMarasstCodesByFrameID(copyBaseVO); + super.copyAssignData(copyBaseVO, pk_source, util); + } + + public void createVersionAssignData(SuperVO copyBaseVO, String pk_source, ErrorLogUtil util) throws BusinessException { + this.queryMarasstCodesByFrameID(copyBaseVO); + super.createVersionAssignData(copyBaseVO, pk_source, util); + } + + private void queryMarasstCodesByFrameID(SuperVO baseVO) throws DAOException { + String var10000 = MarAssistantVO.getDefaultTableName(); + String sql = "select code from " + var10000 + " where pk_marasstframe in (select pk_marasstframe from " + MaterialVO.getDefaultTableName() + " where pk_material=?)"; + SQLParameter param = new SQLParameter(); + param.addParam(baseVO.getPrimaryKey()); + List codes = (List)this.getBaseDAO().executeQuery(sql, param, new ColumnListProcessor()); + this.codeList.addAll(codes); + } + + public void setDefaultValue(SuperVO assignedVO, SuperVO baseVO) throws BusinessException { + MaterialStockVO stockVO = (MaterialStockVO)assignedVO; + if (StringUtils.isBlank(stockVO.getMartype())) { + stockVO.setMartype("MR"); + } + + if (stockVO.getSerialmanaflag() == null) { + stockVO.setSerialmanaflag(UFBoolean.FALSE); + } + + if (stockVO.getWholemanaflag() == null) { + stockVO.setWholemanaflag(UFBoolean.FALSE); + } + + if (stockVO.getQualityunit() == null) { + stockVO.setQualityunit(2); + } + + MaterialVO vo = (MaterialVO)baseVO; + if (this.isEquipment(vo)) { + stockVO.setSerialmanaflag(UFBoolean.TRUE); + stockVO.setSernumunit(vo.getPk_measdoc()); + } + + if (stockVO.getRemain() == null || !stockVO.getRemain().booleanValue()) { + stockVO.setRemain(UFBoolean.TRUE); + } + + if (this.isFeeOrDiscount((MaterialVO)baseVO)) { + stockVO.setIscancelremain(UFBoolean.FALSE); + stockVO.setRemainday((Integer)null); + stockVO.setRemain(UFBoolean.FALSE); + } + + if (stockVO.getWholemanaflag() == null) { + stockVO.setWholemanaflag(UFBoolean.FALSE); + } + + if (stockVO.getQualitymanflag() == null) { + stockVO.setQualitymanflag(UFBoolean.FALSE); + } + + if (stockVO.getSerialmanaflag() == null) { + stockVO.setSerialmanaflag(UFBoolean.FALSE); + } + + if (stockVO.getIsprimarybarcode() == null) { + stockVO.setIsprimarybarcode(UFBoolean.FALSE); + } + + if (stockVO.getIsmngstockbygrswt() == null) { + stockVO.setIsmngstockbygrswt(UFBoolean.FALSE); + } + + if (stockVO.getAutobalancemeas() == null) { + stockVO.setAutobalancemeas(UFBoolean.FALSE); + } + + if (stockVO.getIsstorebyconvert() == null) { + stockVO.setIsstorebyconvert(UFBoolean.FALSE); + } + + if (stockVO.getOuttrackin() == null) { + stockVO.setOuttrackin(UFBoolean.FALSE); + } + + if (stockVO.getNegallowed() == null) { + stockVO.setNegallowed(UFBoolean.FALSE); + } + + if (stockVO.getIsautoatpcheck() == null) { + stockVO.setIsautoatpcheck(UFBoolean.TRUE); + } + + if (stockVO.getPeriodiccheck() == null) { + stockVO.setPeriodiccheck(UFBoolean.FALSE); + } + + if (stockVO.getIsretfreeofchk() == null) { + stockVO.setIsretfreeofchk(UFBoolean.TRUE); + } + + if (stockVO.getIsretinstobychk() == null) { + stockVO.setIsretinstobychk(UFBoolean.FALSE); + } + + if (stockVO.getStockbycheck() == null) { + stockVO.setStockbycheck(UFBoolean.FALSE); + } + + if (stockVO.getIselementcheck() == null) { + stockVO.setIselementcheck(UFBoolean.FALSE); + } + + if (stockVO.getIscancelremain() == null) { + stockVO.setIscancelremain(UFBoolean.TRUE); + } + + if (stockVO.getAtpinpray() == null) { + stockVO.setAtpinpray(UFBoolean.TRUE); + } + + if (stockVO.getAtpinpotransit() == null) { + stockVO.setAtpinpotransit(UFBoolean.TRUE); + } + + if (stockVO.getAtpinonreceive() == null) { + stockVO.setAtpinonreceive(UFBoolean.TRUE); + } + + if (stockVO.getAtpintotransit() == null) { + stockVO.setAtpintotransit(UFBoolean.TRUE); + } + + if (stockVO.getAtpinprod() == null) { + stockVO.setAtpinprod(UFBoolean.TRUE); + } + + if (stockVO.getAtpinsepprod() == null) { + stockVO.setAtpinsepprod(UFBoolean.TRUE); + } + + if (stockVO.getAtpinscoutorder() == null) { + stockVO.setAtpinscoutorder(UFBoolean.TRUE); + } + + if (stockVO.getAtpintransfer() == null) { + stockVO.setAtpintransfer(UFBoolean.TRUE); + } + + if (stockVO.getAtpinsalepromise() == null) { + stockVO.setAtpinsalepromise(UFBoolean.TRUE); + } + + if (stockVO.getAtadorderprod() == null) { + stockVO.setAtadorderprod(UFBoolean.TRUE); + } + + if (stockVO.getAtpoutwaitissue() == null) { + stockVO.setAtpoutwaitissue(UFBoolean.TRUE); + } + + if (stockVO.getAtpouttoorder() == null) { + stockVO.setAtpouttoorder(UFBoolean.TRUE); + } + + if (stockVO.getAtpoutpick() == null) { + stockVO.setAtpoutpick(UFBoolean.TRUE); + } + + if (stockVO.getAtpoutrepair() == null) { + stockVO.setAtpoutrepair(UFBoolean.TRUE); + } + + if (stockVO.getAtpoutapply() == null) { + stockVO.setAtpoutapply(UFBoolean.TRUE); + } + + if (stockVO.getAtpsublendin() == null) { + stockVO.setAtpsublendin(UFBoolean.TRUE); + } + + if (stockVO.getAtpsubfreeze() == null) { + stockVO.setAtpsubfreeze(UFBoolean.TRUE); + } + + if (stockVO.getAtpbybatch() == null) { + stockVO.setAtpbybatch(UFBoolean.FALSE); + } + + if (stockVO.getAtpbyinventory() == null) { + stockVO.setAtpbyinventory(UFBoolean.FALSE); + } + + if (stockVO.getAtpinimptbgn() == null) { + stockVO.setAtpinimptbgn(UFBoolean.FALSE); + } + + if (stockVO.getAtpinimpdetail() == null) { + stockVO.setAtpinimpdetail(UFBoolean.FALSE); + } + + if (stockVO.getAtpoutexpbgn() == null) { + stockVO.setAtpoutexpbgn(UFBoolean.FALSE); + } + + if (stockVO.getAtpoutexpdetail() == null) { + stockVO.setAtpoutexpdetail(UFBoolean.FALSE); + } + + if (stockVO.getAtpouttrancontract() == null) { + stockVO.setAtpouttrancontract(UFBoolean.FALSE); + } + + if (stockVO.getAtpouttrandetail() == null) { + stockVO.setAtpouttrandetail(UFBoolean.FALSE); + } + + if (stockVO.getRemainday() == null) { + stockVO.setRemainday(30); + } + + this.fixChildVOFields(stockVO); + + for(int i = 2; i <= 16; ++i) { + String newIndex = MarasstIndexCalculdateUtil.getCalculateNewIndex(Integer.toString(i)); + String key = "freeasst" + newIndex; + if (!this.codeList.contains(newIndex) || stockVO.getAttributeValue(key) == null) { + stockVO.setAttributeValue(key, UFBoolean.FALSE); + } + } + + } + + private boolean isEquipment(MaterialVO vo) { + Integer materialmgt = vo.getMaterialmgt(); + return materialmgt != null && materialmgt == 2; + } + + private boolean isFeeOrDiscount(MaterialVO vo) { + boolean free = vo.getFee().booleanValue(); + boolean discount = vo.getDiscountflag().booleanValue(); + return free || discount; + } + + private void fixChildVOFields(MaterialStockVO vo) { + MaterialWarhVO[] warhs = vo.getMaterialwarh(); + if (warhs != null && warhs.length > 0) { + for(int i = 0; i < warhs.length; ++i) { + warhs[i].setPk_material(vo.getPk_material()); + } + } + + } + + protected void loadPfTabInfo(List pfpkList, Map needToAssignBaseInfoMap) throws BusinessException { + if (!CollectionUtils.isEmpty(pfpkList) && !needToAssignBaseInfoMap.isEmpty()) { + String where = BDSqlInUtil.formInSQLWithoutAnd("pk_material_pf", (String[])pfpkList.toArray(new String[0]), false); + IMaterialPfQueryService materialPfQueryService = (IMaterialPfQueryService)NCLocator.getInstance().lookup(IMaterialPfQueryService.class); + MaterialPfVO[] pfvos = materialPfQueryService.queryMaterialPfVOs((String[])pfpkList.toArray(new String[0])); + if (pfvos != null && pfvos.length > 0) { + for(MaterialPfVO pfVO : pfvos) { + MaterialPFBaseVO marterialpfbaseVO = pfVO.getMaterialpfBase(); + MaterialVO marterialVO = (MaterialVO)BaseDocVoConvertUtil.convertVO(marterialpfbaseVO, new MaterialVO()); + Map> exbeanname_tabvo_map = marterialpfbaseVO.getExbeanname_tabvo_map(); + if (needToAssignBaseInfoMap.containsKey(marterialVO.getPk_material()) && !MapUtils.isEmpty(exbeanname_tabvo_map)) { + MaterialVO basevo = (MaterialVO)needToAssignBaseInfoMap.get(marterialVO.getPk_material()); + ExBeanNameTabVOMapUtil.setExbeanname_tabvo_map(basevo, exbeanname_tabvo_map); + } + } + + } + } + } + + protected void setTabInfo(SuperVO assignedVO, SuperVO basevo) throws BusinessException { + MaterialVO mvo = (MaterialVO)basevo; + MaterialStockVO mfivo = (MaterialStockVO)assignedVO; + String assginorg = mfivo.getPk_org(); + List tabvos = this.extractedTabVOFromBaseVO(mvo); + if (!CollectionUtils.isEmpty(tabvos)) { + final String[] toRemoveFields = new String[]{"pk_material", "pk_materialstock", "modifiedtime", "modifier"}; + List fieldlist = (List)CollectionUtils.select(Arrays.asList(assignedVO.getAttributeNames()), new Predicate() { + public boolean evaluate(Object object) { + String attrName = (String)object; + return !ArrayUtils.contains(toRemoveFields, attrName); + } + }); + String[] fields = (String[])fieldlist.toArray(new String[0]); + + for(SuperVO tabvo : tabvos) { + String pk_org = (String)tabvo.getAttributeValue("pk_org"); + if (StringUtils.equals(pk_org, assginorg)) { + BDVOEntityUtil.copyVOByVO(mfivo, fields, tabvo, fields); + if (tabvo.getClass().getName().equals(MaterialStockVO.class.getName())) { + MaterialStockVO stockVO = (MaterialStockVO)tabvo; + this.dealMaterialWarhVOPks(stockVO.getMaterialwarh(), mvo); + mfivo.setMaterialwarh(stockVO.getMaterialwarh()); + } else if (tabvo.getClass().getName().equals(MaterialStockPFVO.class.getName())) { + MaterialStockPFVO stockVO = (MaterialStockPFVO)tabvo; + MaterialWarhPFVO[] warhs = stockVO.getMaterialwarh(); + if (warhs != null && warhs.length > 0) { + List list = new ArrayList(); + + for(MaterialWarhPFVO bindvo : warhs) { + list.add((MaterialWarhVO)BaseDocVoConvertUtil.convertVO(bindvo, new MaterialWarhVO())); + } + + this.dealMaterialWarhVOPks((MaterialWarhVO[])list.toArray(new MaterialWarhVO[0]), mvo); + mfivo.setMaterialwarh((MaterialWarhVO[])list.toArray(new MaterialWarhVO[0])); + } + } + break; + } + } + + } + } + + private void dealMaterialWarhVOPks(MaterialWarhVO[] vos, MaterialVO mvo) { + if (!ArrayUtils.isEmpty(vos)) { + for(MaterialWarhVO vo : vos) { + vo.setPk_material(mvo.getPk_material()); + vo.setPrimaryKey((String)null); + vo.setStatus(2); + } + } + + } + + private String getExbeanname() { + return TabVOInfoUtil.getExbeanNameByClazz(MaterialStockVO.class); + } + + private Map> getExbeanname_tabvo_map(MaterialVO marvo) { + return ExBeanNameTabVOMapUtil.getExbeanname_tabvo_map(marvo); + } + + private List extractedTabVOFromBaseVO(MaterialVO marvo) { + return (List)this.getExbeanname_tabvo_map(marvo).get(this.getExbeanname()); + } +}