不合格检验单生成批次号、检验单数量带入调整

This commit is contained in:
mzr 2024-10-25 14:52:25 +08:00
parent 8839c46236
commit 728d0fabed
3 changed files with 106 additions and 43 deletions

View File

@ -14,17 +14,22 @@ import org.apache.commons.lang3.StringUtils;
import cn.hutool.core.bean.BeanUtil;
import nc.bs.dao.BaseDAO;
import nc.bs.framework.common.InvocationInfoProxy;
import nc.bs.framework.common.NCLocator;
import nc.bs.pub.common.PfServiceScmUtil;
import nc.bs.trade.business.HYPubBO;
import nc.codeplatform.framework.service.ServiceSupport;
import nc.itf.ic.batch.IBatchGenerateForPU;
import nc.itf.pu.dhjyd.dhjydmaster.IDhjydMasterVOService;
import nc.itf.scmf.ic.mbatchcode.IBatchcodeMaintainService;
import nc.jdbc.framework.processor.ColumnProcessor;
import nc.jdbc.framework.processor.MapListProcessor;
import nc.jdbc.framework.processor.MapProcessor;
import nc.pub.billcode.vo.BillCodeContext;
import nc.vo.bd.meta.BatchOperateVO;
import nc.vo.pu.dhjyd.AggDhjydMasterVO;
import nc.vo.pu.dhjyd.DhjydMasterVO;
import nc.vo.pu.dhjyd.DhjydSlave0VO;
import nc.vo.pu.m23.rule.BatchCodeFieldMap;
import nc.vo.pub.BusinessException;
import nc.vo.pub.ISuperVO;
import nc.vo.pub.SuperVO;
@ -33,6 +38,7 @@ import nc.vo.pub.lang.UFDateTime;
import nc.vo.pub.lang.UFDouble;
import nc.vo.pub.pf.BillStatusEnum;
import nc.vo.pubapp.pattern.pub.MathTool;
import nc.vo.scmf.ic.mbatchcode.BatchcodeVO;
import nccloud.framework.core.exception.ExceptionUtils;
public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydMasterVOService {
@ -232,7 +238,10 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydMa
String pk = getVOPrimaryKey(vo);
setDefaultVal(vo);
if (StringUtils.isEmpty(pk)) {
return dao.insert(vo); // ²åÈë
AggDhjydMasterVO[] vos = dao.insert(vo);
addBatchcodeFromBill(vos);
// return dao.insert(vo); // 插入
return vos;
} else {
return dao.update(vo); // 更新
}
@ -664,11 +673,9 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydMa
testResMap.put(map.getOrDefault("code", "") + "", map.getOrDefault("pk_defdoc", "") + "");
}
}
String def2 = oldVo.getDef2();// ÊýÁ¿
// UFDouble nunqualifiednum = oldVo.getNunqualifiednum();
UFDouble qualifiednum = oldVo.getQualifiednum(); // 数量
String vbatch = (oldVo.getVbatch() != null) ? oldVo.getVbatch() : "";// 批次号
oldVo.setDef2("0");
// oldVo.setNunqualifiednum(UFDouble.ZERO_DBL);
oldVo.setQualifiednum(UFDouble.ZERO_DBL);
DhjydSlave0VO vo0 = new DhjydSlave0VO();
DhjydSlave0VO vo1 = new DhjydSlave0VO();
DhjydSlave0VO vo2 = new DhjydSlave0VO();
@ -679,9 +686,8 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydMa
// 第1行 合格 第2行 回用 第3行 不合格
if ("01".equals(def1Code)) {
// 合格
// vo0.setQualifiednum(qualifiednum);
vo0.setDef2(def2);
vo0.setVbatch(vbatch + vbatchStr[0]);
vo0.setQualifiednum(qualifiednum);
// vo0.setVbatch(vbatch + vbatchStr[0]);
newVOs[0] = vo0;
// 回用
@ -698,9 +704,9 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydMa
// mainVO.setNnum(qualifiednum);
} else if ("02".equals(def1Code)) {
// 合格
vo0.setDef2(def2);
vo0.setQualifiednum(qualifiednum);
vo0.setAttributeValue("def1", testResMap.get("01"));
vo0.setVbatch(vbatch + vbatchStr[0]);
// vo0.setVbatch(vbatch + vbatchStr[0]);
newVOs[0] = vo0;
// 回用
@ -715,10 +721,10 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydMa
// mainVO.setNnum(qualifiednum);
} else if ("03".equals(def1Code)) {
// 合格
vo0.setDef2(def2);
vo0.setQualifiednum(qualifiednum);
// 设置检验结果的值
vo0.setAttributeValue("def1", testResMap.get("01"));
vo0.setVbatch(vbatch + vbatchStr[0]);
// vo0.setVbatch(vbatch + vbatchStr[0]);
newVOs[0] = vo0;
// 回用
@ -791,6 +797,62 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydMa
}
}
@Override
public void addBatchcodeFromBill(AggDhjydMasterVO[] vos) throws BusinessException {
if (ArrayUtils.isEmpty(vos)) {
return;
}
for (AggDhjydMasterVO vo : vos) {
ISuperVO mainVo = vo.getParent();
// 判断是否为不合格检验单,不是则直接跳过
if (!"DHJY-Cxx-02".equals(mainVo.getAttributeValue("transtype"))) {
continue;
}
DhjydSlave0VO[] dhjydSlave0VOs = (DhjydSlave0VO[]) vo.getChildren(DhjydSlave0VO.class);
for (int i = 0; i < dhjydSlave0VOs.length; i++) {
DhjydSlave0VO dhjydSlave0VO = dhjydSlave0VOs[i];
// 新批次号
String vbatch = dhjydSlave0VO.getVbatch();
// 旧批次号
String vbatch1 = vbatch;
if (vbatch.contains("回用")) {
vbatch1 = vbatch.replace("-回用", "");
} else if (vbatch.contains("不合格")) {
vbatch1 = vbatch.replace("-不合格", "");
} else {
continue;
}
// 根据批次号编码查询
IBatchcodeMaintainService batchcodeMaintainService = (IBatchcodeMaintainService) NCLocator.getInstance()
.lookup(IBatchcodeMaintainService.class);
String whereSql = " vbatchcode = '[vbatchcode]' ";
whereSql = whereSql.replace("[vbatchcode]", vbatch1);
// whereSql = whereSql.replace("[vbatchcode]", "2024");
// 获取旧批次号的实体
BatchcodeVO[] batchcodes = (BatchcodeVO[]) batchcodeMaintainService.selectByWhereSql(whereSql,
BatchcodeVO.class);
// 新批次号
for (int j = 0; j < batchcodes.length; j++) {
BatchcodeVO batchcodeVO = batchcodes[j];
batchcodeVO.setPk_batchcode(null);
batchcodeVO.setVbatchcode(vbatch);
batchcodeVO.setStatus(VOStatus.NEW);
}
// 新增新的批次号
if ((batchcodes != null) && (batchcodes.length > 0)) {
IBatchcodeMaintainService maintainService = NCLocator.getInstance()
.lookup(IBatchcodeMaintainService.class);
BatchOperateVO operateVO = new BatchOperateVO();
operateVO.setAddObjs(batchcodes);
maintainService.batchSave(operateVO);
// return (BatchcodeVO[]) operateVO.getAddObjs();
}
}
}
}
@Override
public AggDhjydMasterVO[] callbackSAVEBASE(AggDhjydMasterVO... vos) throws BusinessException {
if (ArrayUtils.isEmpty(vos)) {

View File

@ -3,18 +3,14 @@ package nc.bs.pub.action;
import java.util.Arrays;
import nc.bs.framework.common.NCLocator;
import nc.bs.pub.compiler.IWorkFlowRet;
import nc.vo.pub.BusinessException;
import nc.vo.pub.compiler.PfParameterVO;
import nc.vo.pub.VOStatus;
import nc.vo.uap.pf.PFBusinessException;
import nc.vo.pubapp.pattern.model.entity.bill.AbstractBill;
import nc.vo.pubapp.pattern.model.meta.entity.bill.IBillMeta;
import nc.vo.pub.CircularlyAccessibleValueObject;
import nccloud.commons.lang.StringUtils;
import nc.codeplatform.framework.service.AbstractPfScriptAction;
import nc.vo.pu.dhjyd.AggDhjydMasterVO;
import nc.itf.pu.dhjyd.dhjydmaster.IDhjydMasterVOService;
import nc.vo.pu.dhjyd.AggDhjydMasterVO;
import nc.vo.pub.BusinessException;
import nc.vo.pub.VOStatus;
import nc.vo.pub.compiler.PfParameterVO;
import nc.vo.uap.pf.PFBusinessException;
import nccloud.commons.lang.StringUtils;
public class N_DHJY_SAVE extends AbstractPfScriptAction<AggDhjydMasterVO> {
@ -29,7 +25,6 @@ public class N_DHJY_SAVE extends AbstractPfScriptAction<AggDhjydMasterVO>{
AggDhjydMasterVO[] vos = (AggDhjydMasterVO[]) this.getVos();
Arrays.stream(vos).forEach(v -> v.getParent().setStatus(VOStatus.UPDATED));
vos = service.callbackSAVE(vos);
return vos;
@ -47,4 +42,5 @@ public class N_DHJY_SAVE extends AbstractPfScriptAction<AggDhjydMasterVO>{
throw new BusinessException("当前单据未执行保存动作脚本,如果配置了业务流程定义,请检查动作驱动配置!");
}
}
}

View File

@ -3,12 +3,11 @@ package nc.itf.pu.dhjyd.dhjydmaster;
import java.util.Map;
import nc.vo.pub.BusinessException;
import nc.vo.pub.SuperVO;
import nc.pub.billcode.vo.BillCodeContext;
import nc.vo.pu.dhjyd.AggDhjydMasterVO;
import nc.vo.pu.dhjyd.DhjydMasterVO;
import nc.pub.billcode.vo.BillCodeContext;
import nc.vo.pub.BusinessException;
import nc.vo.pub.SuperVO;
public interface IDhjydMasterVOService {
@ -295,4 +294,10 @@ public interface IDhjydMasterVOService {
*/
public void afterAuditUnPass(AggDhjydMasterVO[] vos) throws BusinessException;
/**
* 不合格检验单生成批次号
*
*/
void addBatchcodeFromBill(AggDhjydMasterVO[] vos) throws BusinessException;
}