导入流程生产订单-序列号-调整
This commit is contained in:
parent
4296caf74f
commit
93cee1552c
|
|
@ -7,22 +7,32 @@ package nc.bs.mmpac.pmo.pac0002.pluginpoint;
|
|||
|
||||
import nc.bs.dao.BaseDAO;
|
||||
import nc.bs.framework.common.InvocationInfoProxy;
|
||||
import nc.bs.framework.common.NCLocator;
|
||||
import nc.bs.mmpac.pmo.pac0002.bp.util.PMOBPUtil;
|
||||
import nc.bs.trade.business.HYPubBO;
|
||||
import nc.impl.pubapp.pattern.data.bill.BillQuery;
|
||||
import nc.jdbc.framework.processor.MapProcessor;
|
||||
import nc.pubitf.sn.doc.ISnService;
|
||||
import nc.pubitf.sn.doc.param.SnDocParam;
|
||||
import nc.vo.ml.NCLangRes4VoTransl;
|
||||
import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO;
|
||||
import nc.vo.mmpac.pmo.pac0002.entity.PMOHeadVO;
|
||||
import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO;
|
||||
import nc.vo.mmpac.pmo.pac0002.entity.PMOSerialNoVO;
|
||||
import nc.vo.mmpac.pmo.parameter.PMOMaterlKey;
|
||||
import nc.vo.pub.BusinessException;
|
||||
import nc.vo.pub.VOStatus;
|
||||
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;
|
||||
import nccloud.bs.excel.IXChangeContext;
|
||||
import nccloud.bs.excel.plugin.AbstractImportProceeWithContext;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 导入流程生产订单-序列号
|
||||
|
|
@ -46,13 +56,16 @@ public class PmoSerialNoImportProcess extends AbstractImportProceeWithContext {
|
|||
String cpmohid = pmoSerialNoVO.getVsndef1();// 订单号
|
||||
String vsncode = pmoSerialNoVO.getVsncode();// 序列号
|
||||
UFDouble nsnastnum = pmoSerialNoVO.getNsnastnum();// 数量
|
||||
if (!MathTool.equals(nsnastnum, UFDouble.ONE_DBL)) {
|
||||
throw new BusinessException("数量应该等于1,请检查数据,单号:" + cpmohid + ",行号:" + cmoid);
|
||||
}
|
||||
// 查询生产订单的主键
|
||||
String selSql = " SELECT a.cpmohid,b.cmoid" +
|
||||
" FROM mm_mo b" +
|
||||
" LEFT JOIN mm_pmo a ON a.cpmohid = b.cpmohid" +
|
||||
// " LEFT JOIN org_factory c ON c.pk_factory = b.pk_org " +
|
||||
" WHERE" +
|
||||
" a.vbillcode = '[cpmohid]'" +
|
||||
" WHERE b.dr = 0" +
|
||||
" AND a.vbillcode = '[cpmohid]'" +
|
||||
" AND b.vrowno = '[cmoid]'" +
|
||||
" AND b.pk_org = '[pk_org]'";
|
||||
selSql = selSql.replace("[cpmohid]", cpmohid);
|
||||
|
|
@ -69,6 +82,15 @@ public class PmoSerialNoImportProcess extends AbstractImportProceeWithContext {
|
|||
BillQuery<PMOAggVO> query = new BillQuery(PMOAggVO.class);
|
||||
PMOAggVO[] vos = query.query(new String[]{cpmohid1});
|
||||
for (PMOAggVO pmoAggVO : vos) {
|
||||
PMOHeadVO headVO = pmoAggVO.getParentVO();
|
||||
// 交易类型编码
|
||||
String vtrantypecode = headVO.getVtrantypecode();
|
||||
Set<String> billTypeCodes = Set.of(
|
||||
"55A2-Cxx-01", "55A2-Cxx-18"
|
||||
);
|
||||
if (!billTypeCodes.contains(vtrantypecode)) {
|
||||
throw new BusinessException("订单类型不符合要求,请检查数据,单号:" + cpmohid + ",行号:" + cmoid);
|
||||
}
|
||||
PMOItemVO[] pmoItemVOS = pmoAggVO.getChildrenVO();
|
||||
for (PMOItemVO pmoItemVO : pmoItemVOS) {
|
||||
if (cmoid1.equals(pmoItemVO.getCmoid())) {
|
||||
|
|
@ -77,14 +99,14 @@ public class PmoSerialNoImportProcess extends AbstractImportProceeWithContext {
|
|||
pmoSerialNoVO1.setPk_group(pmoItemVO.getPk_group());
|
||||
pmoSerialNoVO1.setPk_org(pmoItemVO.getPk_org());
|
||||
pmoSerialNoVO1.setPk_org_v(pmoItemVO.getPk_org_v());
|
||||
pmoSerialNoVO1.setCsnunitid(pmoItemVO.getCunitid());// 主单位
|
||||
pmoSerialNoVO1.setCsnastunitid(pmoItemVO.getCastunitid());// 单位
|
||||
pmoSerialNoVO1.setVsncode(vsncode);
|
||||
pmoSerialNoVO1.setNsnnum(nsnastnum);
|
||||
pmoSerialNoVO1.setNsnastnum(nsnastnum);
|
||||
// pmoItemVO.setStatus(VOStatus.UPDATED);
|
||||
pmoSerialNoVO1.setStatus(VOStatus.NEW);
|
||||
pmoSerialNoVO1.setDr(0);
|
||||
this.doAddSave(pmoSerialNoVO1);
|
||||
// pmoItemVO.setSerialnos(new PMOSerialNoVO[]{pmoSerialNoVO1});
|
||||
this.doAddSave(pmoSerialNoVO1, headVO, pmoItemVO);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -93,15 +115,30 @@ public class PmoSerialNoImportProcess extends AbstractImportProceeWithContext {
|
|||
}
|
||||
}
|
||||
|
||||
private void doAddSave(PMOSerialNoVO vo) {
|
||||
private void doAddSave(PMOSerialNoVO vo, PMOHeadVO headvo, PMOItemVO itemvo) {
|
||||
try {
|
||||
HYPubBO hy = new HYPubBO();
|
||||
// 之前序列号全部设置为删除状态
|
||||
// int num = dao.executeUpdate("update mm_pmo_serialno set dr = 1 where cmoid = '" + itemvo.getCmoid() + "'");
|
||||
// NCCForUAPLogger.debug("PmoSerialNoImportProcess-num = " + num);
|
||||
String insert = hy.insert(vo);
|
||||
NCCForUAPLogger.debug(insert);
|
||||
NCCForUAPLogger.debug("PmoSerialNoImportProcess-insert = " + insert);
|
||||
if (insert != null && !insert.isEmpty()) {
|
||||
PMOSerialNoVO pmoSerialNoVO = (PMOSerialNoVO) hy.queryByPrimaryKey(PMOSerialNoVO.class, insert);
|
||||
// 新增序列号档案
|
||||
List<SnDocParam> saveParams = new ArrayList<>();
|
||||
this.construcParams(saveParams, headvo, itemvo, pmoSerialNoVO, null);
|
||||
ISnService service = NCLocator.getInstance().lookup(ISnService.class);
|
||||
service.saveSerialnos(saveParams.toArray(new SnDocParam[0]));
|
||||
}
|
||||
// NCLocator.getInstance().lookup(IPMOMaintainService.class).insert(resvo);
|
||||
} catch (BusinessException e) {
|
||||
ExceptionUtils.wrappException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private void construcParams(List<SnDocParam> params, PMOHeadVO headvo, PMOItemVO itemvo, PMOSerialNoVO snvo, Map<PMOMaterlKey, String> snUint) {
|
||||
SnDocParam docParam = PMOBPUtil.getSnDocParam(headvo, itemvo, snvo, snUint);
|
||||
params.add(docParam);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue