Compare commits

...

4 Commits
master ... main

Author SHA1 Message Date
hefengkai 3be8f4d652 到货检验单部分字段值调整 2024-10-17 18:38:56 +08:00
hefengkai b70b874e94 到货单生成接口配置文件调整 2024-10-16 19:05:36 +08:00
hefengkai 28cd719b78 到货单生成接口 2024-10-16 19:03:48 +08:00
hefengkai df2998ce3f # WARNING: head commit changed in the meantime
到货单生成接口
2024-10-16 19:02:00 +08:00
5 changed files with 222 additions and 0 deletions

View File

@ -5,6 +5,7 @@
<interface>nc.itf.pu.dhjyd.dhjydmaster.IDhjydMasterVOService</interface> <interface>nc.itf.pu.dhjyd.dhjydmaster.IDhjydMasterVOService</interface>
<implementation>nc.impl.pu.dhjyd.dhjydmaster.DhjydMasterVOServiceImpl</implementation> <implementation>nc.impl.pu.dhjyd.dhjydmaster.DhjydMasterVOServiceImpl</implementation>
</component> </component>
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true"> <component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nc.itf.pu.dhjyd.dhjydmaster.IArriveToDhjyd</interface> <interface>nc.itf.pu.dhjyd.dhjydmaster.IArriveToDhjyd</interface>
<implementation>nc.impl.pu.dhjyd.dhjydmaster.ArriveToDhjydImpl</implementation> <implementation>nc.impl.pu.dhjyd.dhjydmaster.ArriveToDhjydImpl</implementation>

View File

@ -0,0 +1,72 @@
package nc.impl.pu.dhjyd.dhjydmaster;
import java.util.ArrayList;
import java.util.Map;
import nc.bs.framework.common.NCLocator;
import nc.bs.pub.pf.PfUtilTools;
import nc.itf.pu.dhjyd.dhjydmaster.IArriveToDhjyd;
import nc.itf.pu.dhjyd.dhjydmaster.IDhjydMasterVOService;
import nc.vo.pu.dhjyd.AggDhjydMasterVO;
import nc.vo.pu.dhjyd.DhjydMasterVO;
import nc.vo.pu.dhjyd.DhjydSlave0VO;
import nc.vo.pu.m23.entity.ArriveHeaderVO;
import nc.vo.pu.m23.entity.ArriveItemVO;
import nc.vo.pu.m23.entity.ArriveVO;
import nc.vo.pub.BusinessException;
import nc.vo.pub.lang.UFDate;
public class ArriveToDhjydImpl implements IArriveToDhjyd {
/***
* 到货单生成到货检验单
* @param ArriveVO
* @return
*/
@Override
public Map<String, String> createDhjyd_RequiresNew(ArriveVO arriveVO) throws BusinessException {
try {
ArriveHeaderVO arriveHeadVo = arriveVO.getHVO();//获取到货单表头信息
ArriveItemVO[] arriveItems = arriveVO.getBVO();//获取到货单表体信息
//到货单集合获取
ArrayList<ArriveVO> arrayList = new ArrayList<ArriveVO>();
arrayList.add(arriveVO);
// 单据转换 到货单-->到货检验单
AggDhjydMasterVO[] vos = (AggDhjydMasterVO[]) PfUtilTools.runChangeDataAry("23", "DHJY",
arrayList.toArray(new ArriveVO[0]));
DhjydMasterVO masterVO = vos[0].getParentVO();//检验单表头信息获取
masterVO.setStatus(2);//新增(0:初始 1:更新 2:新增 3:删除)
masterVO.setBilltype("DHJY");//单据类型
masterVO.setSrcbillid(arriveHeadVo.getPk_arriveorder());//来源单id
masterVO.setVsourcecode(arriveHeadVo.getVbillcode());//来源单据号
masterVO.setSrcbilltype(arriveHeadVo.getCtrantypeid());//来源单据号
masterVO.setDapplydate(new UFDate());//报检日期
DhjydSlave0VO[] itemVOs = (DhjydSlave0VO[])vos[0].getChildrenVO();//检验单表体信息
if(itemVOs != null && itemVOs.length > 0) {
for (int i = 0; i < itemVOs.length; i++) {
itemVOs[0].setStatus(2);//新增(0:初始 1:更新 2:新增 3:删除)
}
}
// 到货检验单保存-生成保存态
IDhjydMasterVOService dhjydMasterVO = NCLocator.getInstance().lookup(IDhjydMasterVOService.class);
dhjydMasterVO.saveAggDhjydMasterVO(vos);
} catch (Exception e) {
String errMsg = e.toString();
if (e.getCause() != null) {
errMsg = e.getCause().toString();
}
throw new BusinessException(errMsg);
}
// TODO Auto-generated method stub
return null;
}
}

View File

@ -0,0 +1,93 @@
package nc.impl.pu.m23.approve.action;
import nc.bs.pu.m23.fa.rule.CanStoreNumRule;
import nc.bs.pu.m23.plugin.ArriveActionPlugInPoint;
import nc.bs.pub.compiler.AbstractCompiler2;
import nc.bs.scmpub.pf.PfParameterUtil;
import nc.bs.scmpub.rule.VOSagaFrozenValidateRule;
import nc.impl.pu.m23.approve.rule.ApproveAfterEventRule;
import nc.impl.pu.m23.approve.rule.ApproveAndQualityCheckRule;
import nc.impl.pu.m23.approve.rule.ApproveAndSaveDhjyRule;
import nc.impl.pu.m23.approve.rule.ApproveBeforeEventRule;
import nc.impl.pu.m23.approve.rule.ApproveFilterRule;
import nc.impl.pu.m23.approve.rule.ChkCanApproveRule;
import nc.impl.pubapp.pattern.data.bill.BillUpdate;
import nc.impl.pubapp.pattern.rule.processer.AroundProcesser;
import nc.vo.ml.NCLangRes4VoTransl;
import nc.vo.pu.m23.entity.ArriveVO;
import nc.vo.pu.m23.rule.ArriveATPUpdateRule;
import nc.vo.pu.pub.enumeration.PuBusiLogActionCode;
import nc.vo.pu.pub.enumeration.PuBusiLogPathCode;
import nc.vo.pu.pub.rule.busilog.WriteOperateLogRule;
import nc.vo.pubapp.pattern.exception.ExceptionUtils;
public class ArriveApproveAction
{
public ArriveVO[] approveArrive(ArriveVO[] voArray, AbstractCompiler2 script) {
PfParameterUtil<ArriveVO> util = new PfParameterUtil<ArriveVO>((script == null) ? null : script.getPfParameterVO(), voArray);
ArriveVO[] originBills = (ArriveVO[])util.getOrginBills();
AroundProcesser<ArriveVO> processer = new AroundProcesser<ArriveVO>(ArriveActionPlugInPoint.ArriveApproveAction);
addBeforeRule(processer);
addAfterRule(processer);
addATPRule(processer);
(new ArriveATPUpdateRule(true)).process(voArray);
processer.before(voArray);
if (null != script) {
try {
script.procFlowBacth(script.getPfParameterVO());
} catch (Exception e) {
ExceptionUtils.wrappException(e);
}
}
if (script == null || (script.getPfParameterVO()).m_preValueVos == null) {
String msg = NCLangRes4VoTransl.getNCLangRes().getStrByID("4004040_0", "04004040-0115");
ExceptionUtils.wrappBusinessException(msg);
return null;
}
BillUpdate<ArriveVO> update = new BillUpdate<ArriveVO>();
ArriveVO[] returnVos = (ArriveVO[])update.update(voArray, originBills);
processer.after(returnVos);
return returnVos;
}
private void addAfterRule(AroundProcesser<ArriveVO> processer) {
processer.addAfterRule(new WriteOperateLogRule(PuBusiLogPathCode.puarrivalApprovePath
.getCode(), PuBusiLogActionCode.approve
.getCode()));
processer.addAfterRule(new ApproveFilterRule());
processer.addAfterRule(new ApproveAfterEventRule());
processer.addAfterRule(new ApproveAndQualityCheckRule());
//到货单审批后生成检验单-hefk
processer.addAfterRule(new ApproveAndSaveDhjyRule());
}
private void addATPRule(AroundProcesser<ArriveVO> processer) { processer.addAfterRule(new ArriveATPUpdateRule(false)); }
private void addBeforeRule(AroundProcesser<ArriveVO> processer) {
processer.addBeforeRule(new VOSagaFrozenValidateRule());
processer.addBeforeRule(new ChkCanApproveRule());
processer.addBeforeRule(new ApproveBeforeEventRule());
processer.addBeforeRule(new CanStoreNumRule());
}
}

View File

@ -0,0 +1,35 @@
package nc.impl.pu.m23.approve.rule;
import java.util.Map;
import nc.bs.framework.common.NCLocator;
import nc.impl.pubapp.pattern.rule.IRule;
import nc.itf.pu.dhjyd.dhjydmaster.IArriveToDhjyd;
import nc.vo.pu.m23.entity.ArriveVO;
import nc.vo.pubapp.pattern.exception.ExceptionUtils;
import nccloud.commons.lang.ArrayUtils;
/***
* 到货单审核完成生成检验单
* @author hefk
*
*/
public class ApproveAndSaveDhjyRule extends Object implements IRule<ArriveVO>
{
public void process(ArriveVO[] vos) {
if (ArrayUtils.isEmpty(vos)) {
return;
}
try {
IArriveToDhjyd service = (IArriveToDhjyd)NCLocator.getInstance().lookup(IArriveToDhjyd.class);
if (vos != null && vos.length > 0) {
for(int i = 0; i < vos.length; i++) {
service.createDhjyd_RequiresNew(vos[i]);
}
}
} catch (Exception e) {
ExceptionUtils.wrappException(e);
}
}
}

View File

@ -0,0 +1,21 @@
package nc.itf.pu.dhjyd.dhjydmaster;
import java.util.Map;
import nc.vo.pu.m23.entity.ArriveVO;
import nc.vo.pub.BusinessException;
/***
*
* @author hefk
*
*/
public interface IArriveToDhjyd {
/***
* 到货单生成到货检验单
* @param ArriveVO
* @return
*/
public Map<String,String> createDhjyd_RequiresNew(ArriveVO arriveVO) throws BusinessException;
}