合并备料计划生成出库申请单-2005适配2312

This commit is contained in:
mzr 2025-03-27 11:32:01 +08:00
parent d9c533b614
commit dc913b0687
14 changed files with 977 additions and 0 deletions

10
ic/META-INF/ictk.upm Normal file
View File

@ -0,0 +1,10 @@
<?xml version='1.0' encoding='gb2312'?>
<module name="ic">
<public>
<!-- 备料计划转出库申请 -->
<component priority="0" singleton="true" remote="false" tx="NONE" supportAlias="true">
<interface>nccloud.pubitf.ic.outbound.service.IOutboundTransferVoService1</interface>
<implementation>nccloud.pubimpl.ic.outbound.service.OutboundTransferVoServiceImpl1</implementation>
</component>
</public>
</module>

View File

@ -0,0 +1,109 @@
package nccloud.web.ic.outbound.sapplybill.action;
import nc.pub.templet.converter.util.helper.ExceptionUtils;
import nc.pubitf.pu.m422x.ic.m4455.IQuery422XFor4455;
import nc.ui.querytemplate.querytree.IQueryScheme;
import nc.vo.ic.pub.util.StringUtil;
import nc.vo.ic.pub.util.ValueCheckUtil;
import nc.vo.pu.m422x.entity.PickmReqAppVO;
import nc.vo.pub.BusinessException;
import nc.vo.scmpub.res.billtype.ICBillType;
import nccloud.dto.scmpub.page.entity.SCMQueryTreeFormatVO;
import nccloud.framework.core.json.IJson;
import nccloud.framework.service.ServiceLocator;
import nccloud.framework.web.action.itf.ICommonAction;
import nccloud.framework.web.container.ClientInfo;
import nccloud.framework.web.container.IRequest;
import nccloud.framework.web.container.SessionContext;
import nccloud.framework.web.json.JsonFactory;
import nccloud.framework.web.ui.pattern.billgrid.BillGrid;
import nccloud.framework.web.ui.pattern.billgrid.BillGridOperator;
import nccloud.nc.vo.pub.pf.PullBillInfoVO;
import nccloud.pubitf.ic.pub.service.IICPubQueryService;
import nccloud.pubitf.platform.query.INCCloudQueryService;
import nccloud.pubitf.riart.businesstype.IPFBusinessTypeService;
import java.util.List;
/**
* 查询备料计划的数据-出库申请单拉单使用
*
* @author mzr
* @date 2024/12/21
*/
public class QueryPickmFor4455Action implements ICommonAction {
public Object doAction(IRequest request) {
String read = request.read();
IJson json = JsonFactory.create();
SCMQueryTreeFormatVO info = (SCMQueryTreeFormatVO) json.fromJson(read, SCMQueryTreeFormatVO.class);
INCCloudQueryService queryutil = (INCCloudQueryService) ServiceLocator.find(INCCloudQueryService.class);
IQueryScheme scheme = queryutil.convertCondition(info.getQueryInfo());
/*Object transtype = info.getQueryInfo().getUserdefObj().get("transtype");
PullBillInfoVO[] refbillinfos = queryRefPara(transtype);
appendRefWhr(scheme, refbillinfos);*/
IICPubQueryService<?, ?> schemeservice = (IICPubQueryService) ServiceLocator.find(IICPubQueryService.class);
scheme = schemeservice.appendOrgPermission(scheme);
PickmReqAppVO[] vos = null;
IQuery422XFor4455 queryService = (IQuery422XFor4455) ServiceLocator.find(IQuery422XFor4455.class);
try {
vos = queryService.queryPickmAppsFor4455(scheme);
} catch (BusinessException e) {
ExceptionUtils.wrapException(e);
}
if (null == vos) {
return null;
}
// VO与UI数据格式转换 卡片列表BillGridOperator
BillGridOperator operator = new BillGridOperator(info.getTempletid(), info.getPageCode());
BillGrid[] grids = operator.toBillGrids(vos);
/*if (grids != null) {
StoreReqScaleUtil util = new StoreReqScaleUtil();
for (BillGrid billGrid : grids) {
util.processGrid(billGrid, false);
}
}*/
return grids;
}
private void appendRefWhr(IQueryScheme scheme, PullBillInfoVO[] refbillinfos) {
if (null == refbillinfos || refbillinfos.length == 0) {
return;
}
for (PullBillInfoVO info : refbillinfos) {
if ("422X".equals(info.getSrc_billtype())) {
List<String> busitypes = info.getBusitypes();
if (!ValueCheckUtil.isNullORZeroLength(busitypes)) {
scheme.put("busitypearray", busitypes.toArray(new String[0]));
List<String> tranList = info.getTranstypes();
if (!ValueCheckUtil.isNullORZeroLength(tranList)
&& !StringUtil.isSEmptyOrNull((String) tranList.get(0))) {
scheme.put("transtypearray", tranList.toArray(new String[0]));
}
}
}
}
}
private PullBillInfoVO[] queryRefPara(Object transtype) {
ClientInfo clientinfo = SessionContext.getInstance().getClientInfo();
String groupId = clientinfo.getPk_group();
String userId = clientinfo.getUserid();
IPFBusinessTypeService pfservice = (IPFBusinessTypeService) ServiceLocator.find(IPFBusinessTypeService.class);
PullBillInfoVO[] refbillinfos = null;
try {
refbillinfos = pfservice.getPullBillInfo(ICBillType.SapplyBill.getCode(),
(null == transtype) ? null : (String) transtype, groupId, userId);
} catch (BusinessException e) {
ExceptionUtils.wrapException(e);
}
return refbillinfos;
}
}

View File

@ -0,0 +1,48 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package nccloud.web.ic.outbound.sapplybill.action;
import nc.vo.ic.m4455.entity.SapplyBillVO;
import nccloud.dto.ic.pub.entity.TransferInfo;
import nccloud.framework.core.json.IJson;
import nccloud.framework.service.ServiceLocator;
import nccloud.framework.web.action.itf.ICommonAction;
import nccloud.framework.web.container.IRequest;
import nccloud.framework.web.json.JsonFactory;
import nccloud.framework.web.ui.pattern.billcard.BillCard;
import nccloud.framework.web.ui.pattern.billcard.BillCardOperator;
import nccloud.pubitf.ic.outbound.service.IOutboundTransferVoService1;
import nccloud.web.ic.pub.precision.ICBaseBillcardPrecisionHandler;
/**
* ±¸Áϼƻ®×ª³ö¿âÉêÇë
*
* @author mzr
* @date 2024/12/25
*/
public class TransToSapplyBill1Action implements ICommonAction {
public TransToSapplyBill1Action() {
}
public Object doAction(IRequest request) {
String read = request.read();
IJson json = JsonFactory.create();
TransferInfo transInfo = (TransferInfo) json.fromJson(read, TransferInfo.class);
SapplyBillVO[] vos = null;
IOutboundTransferVoService1 service = (IOutboundTransferVoService1) ServiceLocator.find(IOutboundTransferVoService1.class);
vos = service.transPickmTo4455(transInfo);
BillCardOperator operator = new BillCardOperator(transInfo.getPagecode());
BillCard[] cards = new BillCard[vos.length];
for (int i = 0; i < vos.length; ++i) {
cards[i] = operator.toCard(vos[i]);
ICBaseBillcardPrecisionHandler handler = new SapplyBillPrecisionHandler(cards[i]);
handler.process();
}
return cards;
}
}

View File

@ -0,0 +1,110 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<actions>
<action>
<name>ic.sapplybill.query</name>
<label>出库申请单查询</label>
<clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillQueryAction</clazz>
</action>
<action>
<name>ic.sapplybill.queryPage</name>
<label>出库申请单查询</label>
<clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillPageQueryAction</clazz>
</action>
<action>
<name>ic.sapplybill.maintain</name>
<label>出库申请单删除、提交、收回</label>
<clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillMaintainAction</clazz>
<btncode>Commit,UnCommit,Delete</btncode>
</action>
<action>
<name>ic.sapplybill.save</name>
<label>出库申请单保存</label>
<clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillSaveAction</clazz>
<btncode>Save</btncode>
</action>
<action>
<name>ic.sapplybill.saveAndCommit</name>
<label>出库申请单保存提交</label>
<clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillSaveCommitAction</clazz>
<btncode>SaveCommit, Commit</btncode>
</action>
<action>
<name>ic.sapplybill.canbecopy</name>
<label>出库申请单查询是否可以复制</label>
<clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillBeforeCopyAction</clazz>
</action>
<action>
<name>ic.sapplybill.copy</name>
<label>出库申请单复制</label>
<clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillCopyAction</clazz>
<btncode>Copy</btncode>
</action>
<action>
<name>ic.sapplybill.cardquery</name>
<label>出库申请单卡片态查询</label>
<clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillQueryCardAction</clazz>
</action>
<action>
<name>ic.sapplybill.query422x</name>
<label>拉单物资需求申请单查询</label>
<clazz>nccloud.web.ic.outbound.sapplybill.action.Query422XFor4455Action</clazz>
</action>
<action>
<name>ic.sapplybill.transfervo</name>
<label>物资需求申请单-转单</label>
<clazz>nccloud.web.ic.outbound.sapplybill.action.TransToSapplyBillAction</clazz>
</action>
<action>
<name>ic.sapplybill.queryPickm</name>
<label>拉单备料计划查询</label>
<clazz>nccloud.web.ic.outbound.sapplybill.action.QueryPickmFor4455Action</clazz>
</action>
<action>
<name>ic.sapplybill.transfervo1</name>
<label>备料计划申请单-转单</label>
<clazz>nccloud.web.ic.outbound.sapplybill.action.TransToSapplyBill1Action</clazz>
</action>
<action>
<name>ic.sapplybill.print</name>
<label>出库申请单打印</label>
<clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillPrintAction</clazz>
<btncode>Print,output,Print_list</btncode>
</action>
<action>
<name>ic.sapplybill.combine</name>
<label>出库申请单合并显示</label>
<clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillCombineAction</clazz>
<btncode>CombinePrint</btncode>
</action>
<action>
<name>ic.sapplybill.checkprem</name>
<label>出库申请单修改、打印校验权限</label>
<clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillDataPermissionAction</clazz>
<btncode>Edit,Print</btncode>
</action>
<action>
<name>ic.sapplybill.headAfterEdit</name>
<label>出库申请单表头区域改变事件</label>
<clazz>nccloud.web.ic.outbound.sapplybill.events.SapplyBillHeadAfterEventAction</clazz>
</action>
<action>
<name>ic.sapplybill.bodyAfterEdit</name>
<label>出库申请单表体区域改变事件</label>
<clazz>nccloud.web.ic.outbound.sapplybill.events.SapplyBillBodyAfterEditAction</clazz>
</action>
<action>
<name>ic.sapplybill.rowOpenClose</name>
<label>出库申请单表体行打开关闭操作</label>
<clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillRowOpenCloseAction</clazz>
</action>
<action>
<name>ic.sapplybill.billOpenClose</name>
<label>出库申请单整单打开关闭操作</label>
<clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillOpenCloseAction</clazz>
</action>
<action>
<name>ic.sapplybill.ntpLinkList</name>
<label>预算联查出库申请列表数据加载</label>
<clazz>nccloud.web.ic.outbound.sapplybill.action.SapplyBillNtpLinkListAction</clazz>
</action>
</actions>

View File

@ -0,0 +1,27 @@
<authorizes>
<authorize>
<appcode>400801200,400801204</appcode>
<actions>
<action>ic.sapplybill.query</action>
<action>ic.sapplybill.queryPage</action>
<action>ic.sapplybill.maintain</action>
<action>ic.sapplybill.save</action>
<action>ic.sapplybill.saveAndCommit</action>
<action>ic.sapplybill.canbecopy</action>
<action>ic.sapplybill.copy</action>
<action>ic.sapplybill.cardquery</action>
<action>ic.sapplybill.query422x</action>
<action>ic.sapplybill.transfervo</action>
<action>ic.sapplybill.queryPickm</action>
<action>ic.sapplybill.transfervo1</action>
<action>ic.sapplybill.print</action>
<action>ic.sapplybill.combine</action>
<action>ic.sapplybill.checkprem</action>
<action>ic.sapplybill.headAfterEdit</action>
<action>ic.sapplybill.bodyAfterEdit</action>
<action>ic.sapplybill.rowOpenClose</action>
<action>ic.sapplybill.billOpenClose</action>
<action>ic.sapplybill.ntpLinkList</action>
</actions>
</authorize>
</authorizes>

View File

@ -0,0 +1,148 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package nc.bs.pub.action;
import java.util.Hashtable;
import nc.bs.dao.BaseDAO;
import nc.bs.framework.common.NCLocator;
import nc.bs.ic.pub.env.ICBSContext;
import nc.bs.ic.pub.util.ICBillVOQuery;
import nc.bs.pub.compiler.AbstractCompiler2;
import nc.bs.scmpub.pf.PfParameterUtil;
import nc.itf.ic.m4455.self.ISapplyBillMaintain;
import nc.jdbc.framework.processor.ColumnProcessor;
import nc.vo.ic.m4455.entity.SapplyBillBodyVO;
import nc.vo.ic.m4455.entity.SapplyBillVO;
import nc.vo.ic.pub.pf.ICPFParameter;
import nc.vo.ic.pub.util.ValueCheckUtil;
import nc.vo.ml.NCLangRes4VoTransl;
import nc.vo.pub.BusinessException;
import nc.vo.pub.compiler.PfParameterVO;
import nc.vo.pub.lang.UFDouble;
import nc.vo.pubapp.pattern.exception.ExceptionUtils;
import nc.vo.pubapp.pattern.pub.MathTool;
import nccloud.baseapp.core.log.NCCForUAPLogger;
/**
* 合并备料计划保存前校验申请数量是否超过计划数量-2005适配2312
*
* @author mzr
* @date 2025/3/26
*/
public class N_4455_WRITE extends AbstractCompiler2 {
private Hashtable m_keyHas = null;
private Hashtable m_methodReturnHas = new Hashtable();
private BaseDAO baseDAO = null;
public N_4455_WRITE() {
}
public Object runComClass(PfParameterVO vo) throws BusinessException {
try {
super.m_tmpVo = vo;
ICBSContext context = new ICBSContext();
ICPFParameter pfparam = (ICPFParameter)this.getUserObj();
if (pfparam == null) {
pfparam = new ICPFParameter();
}
if (ValueCheckUtil.isNullORZeroLength(pfparam.getBusinessCheckMap())) {
pfparam.setBAtpCheckFlag(false);
}
context.setICPFParameter(pfparam);
SapplyBillVO[] outVOs = (SapplyBillVO[])this.getVos();
// 保存前校验申请数量是否超过计划数量
for (SapplyBillVO billVO : outVOs) {
SapplyBillBodyVO[] bodyVOS = billVO.getBodys();
for (SapplyBillBodyVO bodyVO : bodyVOS) {
// 只判断来源单据是备料计划的出库申请
if (!"55A3".equals(bodyVO.getCsourcetype())) {
continue;
}
String csourcebillbid = bodyVO.getCsourcebillbid();
// 查询备料计划中的计划出库数量通过备料计划的表体主键
String getPlanNumSql = "SELECT nplanoutastnum "
+ "FROM mm_pickm_b "
+ "WHERE NVL(dr,0) = 0 AND cpickm_bid = '[csourcebillbid]'";
getPlanNumSql = getPlanNumSql.replace("[csourcebillbid]", csourcebillbid);
Object nplanoutastnum = getBaseDAO().executeQuery(getPlanNumSql,
new ColumnProcessor("nplanoutastnum"));
if (nplanoutastnum == null) {
continue;
}
UFDouble plantNum = new UFDouble(String.valueOf(nplanoutastnum));
// 通过备料计划的表体主键查询已申请数量
String getApplyNumSql = "SELECT NVL(SUM(nassistnum),0) nassistnum "
+ "FROM ic_sapply_b "
+ "WHERE NVL(dr,0) = 0 AND csourcebillbid = '[csourcebillbid]'";
getApplyNumSql = getApplyNumSql.replace("[csourcebillbid]", csourcebillbid);
// 修改的时候加上子表主键
if (null != outVOs[0] && null != outVOs[0].getHead() && null != outVOs[0].getHead().getCgeneralhid()) {
getApplyNumSql += " AND cgeneralbid != '" + bodyVO.getPrimaryKey() + "'";
}
Object nassistnum = getBaseDAO().executeQuery(getApplyNumSql,
new ColumnProcessor("nassistnum"));
UFDouble applyNum = new UFDouble(String.valueOf(nassistnum));
NCCForUAPLogger.debug(String.format(
"出库申请保存: 来源单据表体主键 = [%S], 计划出库数量 = [%S], 已申请数量 = [%S], 本次申请数量 = [%S],",
csourcebillbid, plantNum, applyNum, bodyVO.getNassistnum()
));
UFDouble applyNum1 = applyNum.add(bodyVO.getNassistnum());
if (MathTool.compareTo(plantNum, applyNum1) < 0) {
nccloud.framework.core.exception.ExceptionUtils.wrapBusinessException("申请数量已超出计划数量,请检查!");
}
}
}
if (null != outVOs[0] && null != outVOs[0].getHead() && null != outVOs[0].getHead().getCgeneralhid()) {
PfParameterUtil<SapplyBillVO> util = new PfParameterUtil(this.getPfParameterVO(), outVOs);
SapplyBillVO[] originBills = (SapplyBillVO[])util.getOrginBills();
if (originBills == null) {
originBills = (SapplyBillVO[])(new ICBillVOQuery()).fetchVOWithLoc(outVOs);
}
SapplyBillVO[] clientFullBills = (SapplyBillVO[])util.getClientFullInfoBill();
return ((ISapplyBillMaintain)NCLocator.getInstance().lookup(ISapplyBillMaintain.class)).update(clientFullBills, originBills);
} else {
SapplyBillVO[] retunVos = new SapplyBillVO[outVOs.length];
ISapplyBillMaintain service = (ISapplyBillMaintain)NCLocator.getInstance().lookup(ISapplyBillMaintain.class);
for(int i = 0; i < outVOs.length; ++i) {
retunVos[i] = service.insert(new SapplyBillVO[]{outVOs[i]})[0];
}
return retunVos;
}
} catch (Exception ex) {
ExceptionUtils.marsh(ex);
return null;
}
}
public String getCodeRemark() {
return NCLangRes4VoTransl.getNCLangRes().getStrByID("4008003_0", "04008003-0108");
}
private void setParameter(String key, Object val) {
if (this.m_keyHas == null) {
this.m_keyHas = new Hashtable();
}
if (val != null) {
this.m_keyHas.put(key, val);
}
}
private BaseDAO getBaseDAO() {
if (this.baseDAO == null) {
this.baseDAO = new BaseDAO();
}
return this.baseDAO;
}
}

View File

@ -0,0 +1,243 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package nccloud.pubimpl.ic.outbound.service;
import nc.bs.framework.common.InvocationInfoProxy;
import nc.bs.framework.common.NCLocator;
import nc.impl.pubapp.pattern.data.vo.VOQuery;
import nc.itf.scmpub.reference.uap.pf.PfServiceScmUtil;
import nc.itf.uap.pf.IPfExchangeService;
import nc.vo.ic.general.deal.TransBillBaseProcess;
import nc.vo.ic.general.define.ICBillBodyVO;
import nc.vo.ic.general.define.ICBillHeadVO;
import nc.vo.ic.general.define.ICBillVO;
import nc.vo.ic.m4455.entity.SapplyBillVO;
import nc.vo.ic.m4c.deal.Bill4CFor45Process;
import nc.vo.ic.m4c.entity.SaleOutVO;
import nc.vo.ic.material.query.InvInfoQuery;
import nc.vo.ic.org.OrgInfoQuery;
import nc.vo.ic.param.ICSysParam;
import nc.vo.ic.pub.calc.BusiCalculator;
import nc.vo.ic.pub.define.ICContext;
import nc.vo.ic.pub.pf.billtype.BillTypeInfoQuery;
import nc.vo.ic.pub.util.StringUtil;
import nc.vo.ic.pub.util.VOEntityUtil;
import nc.vo.ic.pub.util.ValueCheckUtil;
import nc.vo.ic.warehouse.WarehouseInfoQuery;
import nc.vo.ml.LanguageVO;
import nc.vo.ml.NCLangRes4VoTransl;
import nc.vo.mmpac.pickm.entity.PickmHeadVO;
import nc.vo.mmpac.pickm.entity.PickmItemVO;
import nc.vo.pu.m422x.entity.PickmReqAppVO;
import nc.vo.pub.AggregatedValueObject;
import nc.vo.pub.BusinessException;
import nc.vo.pub.CircularlyAccessibleValueObject;
import nc.vo.pub.compiler.PfParameterVO;
import nc.vo.pub.lang.UFDate;
import nc.vo.pub.lang.UFDateTime;
import nc.vo.pub.pfflow01.BillbusinessVO;
import nc.vo.pubapp.pattern.exception.ExceptionUtils;
import nc.vo.pubapp.scale.ScaleUtils;
import nc.vo.pubapp.util.VORowNoUtils;
import nc.vo.scmpub.res.billtype.ICBillType;
import nc.vo.scmpub.res.billtype.SOBillType;
import nccloud.dto.ic.pub.entity.TransVoInfo;
import nccloud.dto.ic.pub.entity.TransferInfo;
import nccloud.pubitf.ic.outbound.service.IOutboundTransferVoService1;
import java.util.ArrayList;
import java.util.List;
public class OutboundTransferVoServiceImpl1 implements IOutboundTransferVoService1 {
public static final Integer ZERO_INTEGER = 0;
private ICContext context = new ICContext() {
public String getUserID() {
return InvocationInfoProxy.getInstance().getUserId();
}
public UFDateTime getServerDateTime() {
return null;
}
public String getPk_group() {
return InvocationInfoProxy.getInstance().getGroupId();
}
public String getModuleEnableDate() {
return null;
}
public LanguageVO getCurrentLanguage() {
return null;
}
public UFDateTime getBizDateTime() {
return new UFDateTime(InvocationInfoProxy.getInstance().getBizDateTime());
}
public UFDate getBizDate() {
return new UFDate(InvocationInfoProxy.getInstance().getBizDateTime());
}
public String getBDDocMultLangName(String bddocname) {
return null;
}
};
public SapplyBillVO[] transPickmTo4455(TransferInfo info) {
if (null == info) {
return null;
} else {
TransVoInfo[] voInfos = info.getInfo();
if (voInfos.length < 1) {
return null;
} else {
VOQuery<PickmHeadVO> query = new VOQuery(PickmHeadVO.class);
PickmHeadVO[] hvos = (PickmHeadVO[]) query.query(info.getInfo()[0].getHids());
VOQuery<PickmItemVO> queryb = new VOQuery(PickmItemVO.class);
PickmItemVO[] bvos = (PickmItemVO[]) queryb.query(info.getInfo()[0].getBids());
PickmReqAppVO[] volist = new PickmReqAppVO[hvos.length];
for (int i = 0; i < hvos.length; ++i) {
PickmReqAppVO vo = new PickmReqAppVO();
vo.setParentVO(hvos[i]);
List<PickmItemVO> bodyvo = new ArrayList();
for (int j = 0; j < bvos.length; ++j) {
if (bvos[j].getCpickmid().equals(hvos[i].getCpickmid())) {
bodyvo.add(bvos[j]);
}
}
vo.setChildrenVO((CircularlyAccessibleValueObject[]) bodyvo.toArray(new PickmItemVO[0]));
volist[i] = vo;
}
IPfExchangeService service = (IPfExchangeService) NCLocator.getInstance().lookup(IPfExchangeService.class);
AggregatedValueObject[] vochange = new AggregatedValueObject[0];
try {
String cbilltype = info.getInfo()[0].getCbilltype();
vochange = service.runChangeDataAryNeedClassify(cbilltype, ICBillType.SapplyBill.getCode(), volist, (PfParameterVO) null, -1);
} catch (BusinessException e) {
ExceptionUtils.wrappBusinessException(e.getMessage());
}
vochange = this.addFromSource(vochange);
return (SapplyBillVO[]) ((SapplyBillVO[]) vochange);
}
}
}
private AggregatedValueObject[] addFromSource(AggregatedValueObject[] retvos) {
this.processRowNO(this.processAfterVoChange((AggregatedValueObject[]) retvos));
if (retvos instanceof SaleOutVO[]) {
Bill4CFor45Process proc = new Bill4CFor45Process(false);
proc.setBPushSave(false);
proc.setBusiCalc(BusiCalculator.getBusiCalculatorAtBS());
proc.setIcSysParam(new ICSysParam(InvocationInfoProxy.getInstance().getGroupId()));
proc.setInvQuery(new InvInfoQuery());
proc.setOrgInfoQry(new OrgInfoQuery());
proc.setScale(ScaleUtils.getScaleUtilAtBS());
proc.setWhQuery(new WarehouseInfoQuery());
proc.setBilltypeQuery(new BillTypeInfoQuery());
proc.setContext(this.context);
retvos = proc.changeToSaleOutVO((SaleOutVO[]) ((SaleOutVO[]) retvos));
this.checkCbiz((SaleOutVO[]) ((SaleOutVO[]) retvos));
}
return (AggregatedValueObject[]) retvos;
}
protected AggregatedValueObject[] processAfterVoChange(AggregatedValueObject[] retvos) {
this.setClientDbilldate(retvos);
TransBillBaseProcess<ICBillVO, ICBillHeadVO, ICBillBodyVO> process = new TransBillBaseProcess(false, false);
process.setBusiCalc(BusiCalculator.getBusiCalculatorAtBS());
process.setIcSysParam(new ICSysParam(InvocationInfoProxy.getInstance().getGroupId()));
process.setInvQuery(new InvInfoQuery());
process.setOrgInfoQry(new OrgInfoQuery());
process.setScale(ScaleUtils.getScaleUtilAtBS());
process.setWhQuery(new WarehouseInfoQuery());
process.setBilltypeQuery(new BillTypeInfoQuery());
process.setContext(this.context);
return process.processBillVOs((ICBillVO[]) ((ICBillVO[]) retvos));
}
protected void setClientDbilldate(AggregatedValueObject[] retvos) {
long time = InvocationInfoProxy.getInstance().getBizDateTime();
UFDate date = new UFDate(time);
AggregatedValueObject[] var5 = retvos;
int var6 = retvos.length;
for (int var7 = 0; var7 < var6; ++var7) {
AggregatedValueObject retvo = var5[var7];
ICBillVO billvo = (ICBillVO) retvo;
billvo.getHead().setDbilldate(date);
}
}
protected AggregatedValueObject[] processRowNO(AggregatedValueObject[] retvos) {
if (ValueCheckUtil.isNullORZeroLength(retvos)) {
return retvos;
} else {
long time = InvocationInfoProxy.getInstance().getBizDateTime();
UFDate date = new UFDate(time);
AggregatedValueObject[] var5 = retvos;
int var6 = retvos.length;
for (int var7 = 0; var7 < var6; ++var7) {
AggregatedValueObject bill = var5[var7];
CircularlyAccessibleValueObject[] bodys = bill.getChildrenVO();
if (!ValueCheckUtil.isNullORZeroLength(bodys)) {
CircularlyAccessibleValueObject[] var10 = bodys;
int var11 = bodys.length;
for (int var12 = 0; var12 < var11; ++var12) {
CircularlyAccessibleValueObject body = var10[var12];
body.setAttributeValue("crowno", (Object) null);
if (body.getAttributeValue("nnum") != null) {
body.setAttributeValue("dbizdate", date);
}
}
VORowNoUtils.setVOsRowNoByRule(bodys, "crowno");
}
}
return retvos;
}
}
private void checkCbiz(SaleOutVO[] vos) {
String[] cbiztypes = VOEntityUtil.getVOsNotRepeatValue(VOEntityUtil.getHeadVOs(vos), "cbiztype");
if (!ValueCheckUtil.isNullORZeroLength(cbiztypes)) {
String pk_group = InvocationInfoProxy.getInstance().getGroupId();
String arriveCode = SOBillType.Delivery.getCode();
String[] var5 = cbiztypes;
int var6 = cbiztypes.length;
for (int var7 = 0; var7 < var6; ++var7) {
String biztype = var5[var7];
BillbusinessVO[] businessVOs = PfServiceScmUtil.findBillbusinessVOs(biztype, pk_group);
if (!ValueCheckUtil.isNullORZeroLength(businessVOs)) {
BillbusinessVO[] var10 = businessVOs;
int var11 = businessVOs.length;
for (int var12 = 0; var12 < var11; ++var12) {
BillbusinessVO vo = var10[var12];
if (StringUtil.isStringEqual(vo.getPk_billtype(), arriveCode)) {
ExceptionUtils.wrappBusinessException(NCLangRes4VoTransl.getNCLangRes().getStrByID("4008003_0", "04008003-0251"));
}
}
}
}
}
}
}

View File

@ -0,0 +1,14 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package nccloud.pubitf.ic.outbound.service;
import nc.vo.ic.m4455.entity.SapplyBillVO;
import nccloud.dto.ic.pub.entity.TransferInfo;
public interface IOutboundTransferVoService1 {
SapplyBillVO[] transPickmTo4455(TransferInfo info);
}

View File

@ -0,0 +1,88 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package nc.bs.pu.m422x.query;
import nc.bs.scmpub.util.SCMDataAccessUtils;
import nc.impl.pubapp.pattern.data.vo.VOQuery;
import nc.ui.querytemplate.querytree.IQueryScheme;
import nc.vo.mmpac.pickm.entity.PickmHeadVO;
import nc.vo.mmpac.pickm.entity.PickmItemVO;
import nc.vo.pu.m422x.entity.PickmReqAppVO;
import nc.vo.pubapp.pattern.model.tool.BillComposite;
import nc.vo.pubapp.query2.sql.process.QuerySchemeProcessor;
import java.util.HashSet;
import java.util.Set;
public abstract class Abstract422XRefQueryBP1 {
protected String headtb;
protected String itemtb;
protected QuerySchemeProcessor psor;
public Abstract422XRefQueryBP1(IQueryScheme queryScheme) {
this.psor = new QuerySchemeProcessor(queryScheme);
this.headtb = this.psor.getMainTableAlias();
// this.itemtb = this.psor.getTableAliasOfAttribute("pk_storereq_b.pk_storereq_b");
}
public String getHeadtb() {
return this.headtb;
}
public String getItemtb() {
return this.itemtb;
}
public QuerySchemeProcessor getPsor() {
return this.psor;
}
public abstract StringBuilder makeGetPKSql();
public PickmReqAppVO[] queryPickmReqVOs() {
SCMDataAccessUtils utils = new SCMDataAccessUtils(10000);
// this.psor.appendCurrentGroup();
StringBuilder sql = this.makeGetPKSql();
String[][] pks = utils.query(sql.toString()).toTwoDimensionStringArray();
if (null != pks && pks.length != 0) {
Set<String> headPks = new HashSet();
String[] itemPks = new String[pks.length];
for (int i = 0; i < pks.length; ++i) {
headPks.add(pks[i][0]);
itemPks[i] = pks[i][1];
}
PickmHeadVO[] headers = (PickmHeadVO[]) (new VOQuery(PickmHeadVO.class)).query((String[]) headPks.toArray(new String[headPks.size()]));
PickmItemVO[] items = (PickmItemVO[]) (new VOQuery(PickmItemVO.class)).query(itemPks);
BillComposite<PickmReqAppVO> bc = new BillComposite(PickmReqAppVO.class);
PickmReqAppVO tempVO = new PickmReqAppVO();
bc.append(tempVO.getMetaData().getParent(), headers);
bc.append(tempVO.getMetaData().getVOMeta(PickmItemVO.class), items);
PickmReqAppVO[] queryResult = (PickmReqAppVO[]) bc.composite();
// return this.processQueryResult(queryResult);
return queryResult;
} else {
return null;
}
}
public void setHeadtb(String headtb) {
this.headtb = headtb;
}
public void setItemtb(String itemtb) {
this.itemtb = itemtb;
}
public void setPsor(QuerySchemeProcessor psor) {
this.psor = psor;
}
protected PickmReqAppVO[] processQueryResult(PickmReqAppVO[] queryResult) {
return queryResult;
}
}

View File

@ -0,0 +1,54 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package nc.bs.pu.m422x.query;
import nc.bs.pu.m422x.plugin.StoreReqAppPluginPoint;
import nc.bs.pu.m422x.query.rule.CanOutreqNumCalcRule;
import nc.impl.pubapp.pattern.rule.processer.AroundProcesser;
import nc.ui.querytemplate.querytree.IQueryScheme;
import nc.vo.pu.m422x.entity.StoreReqAppVO;
import nccloud.baseapp.core.log.NCCForUAPLogger;
import nccloud.commons.lang.ArrayUtils;
public class QueryFor4455BP1 extends Abstract422XRefQueryBP1 {
public QueryFor4455BP1(IQueryScheme queryScheme) {
super(queryScheme);
}
private void addRule(AroundProcesser<StoreReqAppVO> processer) {
processer.addAfterRule(new CanOutreqNumCalcRule());
}
public StringBuilder makeGetPKSql() {
StringBuilder wholeSql = new StringBuilder();
wholeSql.append(" SELECT DISTINCT a.cpickmid,b.cpickm_bid");
wholeSql.append(" FROM");
wholeSql.append(" (");
wholeSql.append(" SELECT cpickmid");
wholeSql.append(this.psor.getFinalFromWhere());
// 查询审核通过
wholeSql.append(" AND fbillstatus = 1");
// wholeSql.append(" AND APPROVERTIME > '2024-11-01'");
// NCCForUAPLogger.debug("finalFromWhere = " + this.psor.getFinalFromWhere());
wholeSql.append(" ) a");
wholeSql.append(" INNER JOIN mm_pickm_b b ON b.cpickmid = a.cpickmid AND b.dr = 0 ");
// 未出库数量>0
wholeSql.append(" WHERE ");
wholeSql.append(" ( COALESCE(b.nplanoutastnum, 0) - COALESCE(b.nshouldastnum, 0) - COALESCE(b.npscastnum, 0) - COALESCE(b.naccoutastnum, 0) ) > 0 ");
NCCForUAPLogger.debug("wholeSql = " + wholeSql);
return wholeSql;
}
protected StoreReqAppVO[] processQueryResult(StoreReqAppVO[] queryResult) {
if (ArrayUtils.isEmpty(queryResult)) {
return null;
} else {
AroundProcesser<StoreReqAppVO> processer = new AroundProcesser(StoreReqAppPluginPoint.PULL_4455);
this.addRule(processer);
return (StoreReqAppVO[]) processer.after(queryResult);
}
}
}

View File

@ -0,0 +1,40 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package nc.pubimpl.pu.m422x.ic.m4455;
import nc.bs.pu.m422x.query.QueryFor4455BP;
import nc.bs.pu.m422x.query.QueryFor4455BP1;
import nc.pubitf.pu.m422x.ic.m4455.IQuery422XFor4455;
import nc.ui.querytemplate.querytree.IQueryScheme;
import nc.vo.pu.m422x.entity.PickmReqAppVO;
import nc.vo.pu.m422x.entity.StoreReqAppVO;
import nc.vo.pub.BusinessException;
import nc.vo.pubapp.pattern.exception.ExceptionUtils;
public class Query422XFor4455Impl implements IQuery422XFor4455 {
public Query422XFor4455Impl() {
}
@Override
public StoreReqAppVO[] queryStoreReqAppsFor4455(IQueryScheme queryScheme) throws BusinessException {
try {
return (new QueryFor4455BP(queryScheme)).queryStoreReqVOs();
} catch (Exception e) {
ExceptionUtils.marsh(e);
return null;
}
}
@Override
public PickmReqAppVO[] queryPickmAppsFor4455(IQueryScheme queryScheme) throws BusinessException {
try {
return (new QueryFor4455BP1(queryScheme)).queryPickmReqVOs();
} catch (Exception e) {
ExceptionUtils.marsh(e);
return null;
}
}
}

View File

@ -0,0 +1,17 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package nc.pubitf.pu.m422x.ic.m4455;
import nc.ui.querytemplate.querytree.IQueryScheme;
import nc.vo.pu.m422x.entity.PickmReqAppVO;
import nc.vo.pu.m422x.entity.StoreReqAppVO;
import nc.vo.pub.BusinessException;
public interface IQuery422XFor4455 {
StoreReqAppVO[] queryStoreReqAppsFor4455(IQueryScheme var1) throws BusinessException;
PickmReqAppVO[] queryPickmAppsFor4455(IQueryScheme queryScheme) throws BusinessException;
}

View File

@ -0,0 +1,21 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package nc.vo.pu.m422x.entity;
import nc.vo.mmpac.pickm.entity.PickmHeadVO;
import nc.vo.mmpac.pickm.entity.PickmItemVO;
import nc.vo.pubapp.pattern.model.meta.entity.bill.AbstractBillMeta;
public class PickmAppVOMeta extends AbstractBillMeta {
public PickmAppVOMeta() {
this.init();
}
public void init() {
this.setParent(PickmHeadVO.class);
this.addChildren(PickmItemVO.class);
}
}

View File

@ -0,0 +1,48 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package nc.vo.pu.m422x.entity;
import nc.vo.annotation.AggVoInfo;
import nc.vo.mmpac.pickm.entity.PickmHeadVO;
import nc.vo.mmpac.pickm.entity.PickmItemVO;
import nc.vo.pubapp.pattern.model.entity.bill.AbstractBill;
import nc.vo.pubapp.pattern.model.meta.entity.bill.BillMetaFactory;
import nc.vo.pubapp.pattern.model.meta.entity.bill.IBillMeta;
@AggVoInfo(
parentVO = "nc.vo.mmpac.pickm.entity.PickmHeadVO"
)
public class PickmReqAppVO extends AbstractBill {
private static final long serialVersionUID = -3077249229044777149L;
public PickmReqAppVO() {
}
/*public static StoreReqAppCloseVO[] getCloseVO(PickmReqAppVO[] vos) {
return (StoreReqAppCloseVO[]) (new BillToViewConvertor(StoreReqAppCloseVO.class)).convert(vos);
}*/
public PickmItemVO[] getBVO() {
return (PickmItemVO[]) ((PickmItemVO[]) this.getChildrenVO());
}
public PickmHeadVO getHVO() {
return (PickmHeadVO) this.getParent();
}
public IBillMeta getMetaData() {
IBillMeta billMeta = BillMetaFactory.getInstance().getBillMeta(PickmAppVOMeta.class);
return billMeta;
}
public void setBVO(PickmItemVO[] voaChildren) {
this.setChildrenVO(voaChildren);
}
public void setHVO(PickmHeadVO voaParent) {
this.setParent(voaParent);
}
}