检验单弃审时验证到货单是否已入库

This commit is contained in:
mzr 2024-10-15 15:46:48 +08:00
parent 2555e3c304
commit 168f1283e9
2 changed files with 280 additions and 224 deletions

View File

@ -30,6 +30,7 @@ public class PFlowDhjydMasterVOAction extends BaseAction{
return this.exeFlow(actionName, tsMap, assign);
}
private Object exeFlow(String actionName, Map<String, String> tsMap, Object assign) throws BusinessException {
final String ACTION_SAVE = "SAVE", ACTION_UNSAVE = "UNSAVE";// 提交收回
IDhjydMasterVOService service = ServiceLocator.find(IDhjydMasterVOService.class);

View File

@ -12,8 +12,10 @@ import nc.vo.pub.lang.UFDateTime;
import nc.uap.utils.InSQLCreator;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.beanutils.PropertyUtils;
import com.informix.util.stringUtil;
import org.apache.commons.beanutils.PropertyUtils;
import nc.vo.pub.BusinessException;
import nc.vo.pub.BusinessRuntimeException;
@ -27,14 +29,15 @@ import nc.vo.pu.dhjyd.DhjydMasterVO;
import nc.vo.pu.dhjyd.DhjydSlave0VO;
import nc.vo.pu.dhjyd.AggDhjydMasterVO;
import nc.itf.pu.dhjyd.dhjydmaster.IDhjydMasterVOService;
import nc.jdbc.framework.processor.ColumnProcessor;
import nc.vo.pub.pf.BillStatusEnum;
import nc.bs.dao.BaseDAO;
import nc.bs.framework.common.InvocationInfoProxy;
import nccloud.framework.core.exception.ExceptionUtils;
public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydMasterVOService {
private BaseDAO baseDAO = null;
@Override
public AggDhjydMasterVO[] listAggDhjydMasterVOByPk(String... pks) throws BusinessException {
@ -55,10 +58,13 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydM
public AggDhjydMasterVO[] listAggDhjydMasterVOByCondition(String condition) throws BusinessException {
return listAggDhjydMasterVOByCondition(condition, new String[] { "pk_chekbill_h" });
}
@Override
public AggDhjydMasterVO[] listAggDhjydMasterVOByCondition(String condition,String[] orderPath) throws BusinessException{
public AggDhjydMasterVO[] listAggDhjydMasterVOByCondition(String condition, String[] orderPath)
throws BusinessException {
return dao.listByCondition(AggDhjydMasterVO.class, condition, false, false, orderPath);
}
@Override
public DhjydMasterVO[] listDhjydMasterVOByPk(String... pks) throws BusinessException {
return dao.listByPk(DhjydMasterVO.class, pks, true);
@ -73,6 +79,7 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydM
public DhjydMasterVO[] listDhjydMasterVOByCondition(String condition) throws BusinessException {
return listDhjydMasterVOByCondition(condition, new String[] { "pk_chekbill_h" });
}
@Override
public DhjydMasterVO[] listDhjydMasterVOByCondition(String condition, String[] orderPath) throws BusinessException {
return dao.listByCondition(DhjydMasterVO.class, condition, false, false, orderPath);
@ -82,6 +89,7 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydM
public String[] listDhjydMasterVOPkByCond(String condition) throws BusinessException {
return listDhjydMasterVOPkByCond(condition, new String[] { "pk_chekbill_h" });
}
@Override
public String[] listDhjydMasterVOPkByCond(String condition, String[] orderPath) throws BusinessException {
if (StringUtils.isEmpty(condition)) {
@ -101,6 +109,7 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydM
return pks.toArray(new String[0]);
});
}
@Override
public void initDefaultData(DhjydMasterVO vo) {
if (vo.getAttributeValue("pk_group") == null) {
@ -119,14 +128,18 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydM
vo.setAttributeValue("approvestatus", BillStatusEnum.FREE.toIntValue());
}
}
@Override
public AggDhjydMasterVO preAddAggDhjydMasterVO(AggDhjydMasterVO vo,Map<String,Object> userJson) throws BusinessException{
public AggDhjydMasterVO preAddAggDhjydMasterVO(AggDhjydMasterVO vo, Map<String, Object> userJson)
throws BusinessException {
getMainVO(vo).setStatus(VOStatus.NEW);
initDefaultData((DhjydMasterVO) getMainVO(vo));
// 下面这段要判断是否是树表界面插件
Map<String,String> data = userJson!=null && userJson.get("data") != null?(Map<String,String>)userJson.get("data"):null;
Map<String, String> data = userJson != null && userJson.get("data") != null
? (Map<String, String>) userJson.get("data")
: null;
if (data != null && data.size() > 0) {
String parentKey = data.get("parentKey");
String parentPk = data.get("parentPk");
@ -146,6 +159,7 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydM
return vo;
}
@Override
public AggDhjydMasterVO preAddAggDhjydMasterVO(Map<String, Object> userJson) throws BusinessException {
AggDhjydMasterVO result = null;
@ -212,6 +226,7 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydM
}
return vo;
}
@Override
public AggDhjydMasterVO[] saveAggDhjydMasterVO(AggDhjydMasterVO vo) throws BusinessException {
String pk = getVOPrimaryKey(vo);
@ -222,8 +237,10 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydM
return dao.update(vo); // 更新
}
}
/**
* 保存前处理编码规则
*
* @param vos
*/
private void setBillCode(AggDhjydMasterVO... vos) throws BusinessException {
@ -235,7 +252,8 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydM
String pk_group = InvocationInfoProxy.getInstance().getGroupId();
if (billCodeContext != null && !billCodeContext.isPrecode()) {
if (getMainVO(vo).getAttributeValue("code") == null) {
String code = getBillcodeManage().getBillCode_RequiresNew("pudhjyd", pk_group, pk_group, getMainVO(vo));
String code = getBillcodeManage().getBillCode_RequiresNew("pudhjyd", pk_group, pk_group,
getMainVO(vo));
getMainVO(vo).setAttributeValue("code", code);
}
} else {
@ -246,8 +264,10 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydM
}
}
}
/**
* 保存前设置审计信息
*
* @param vos
*/
private void setAuditInfo(AggDhjydMasterVO... vos) throws BusinessException {
@ -272,8 +292,10 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydM
}
}
}
/**
* 保存前处理一些默认值
*
* @param vos
*/
private void setDefaultVal(AggDhjydMasterVO... vos) throws BusinessException {
@ -374,27 +396,24 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydM
return Stream.of(vos).map(vo -> vo.getPrimaryKey()).toArray(String[]::new);
}
public SuperVO[] queryChildVOByPks(Class childClazz, String[] pks) throws BusinessException {
return (SuperVO[]) dao.listByPk(childClazz, pks, false);
}
/**
* 提交前校验:
* 检查单据状态
* 提交前校验: 检查单据状态
*
* @throws BusinessException
* */
*/
private void validateCommitAggDhjydMasterVO(AggDhjydMasterVO... vos) throws BusinessException {
if (ArrayUtils.isEmpty(vos)) {
return;
}
List<AggDhjydMasterVO> list = Arrays.stream(vos)
.filter(item ->item.getParentVO()!=null)
.filter(item->{
List<AggDhjydMasterVO> list = Arrays.stream(vos).filter(item -> item.getParentVO() != null).filter(item -> {
Integer status = (Integer) item.getParentVO().getAttributeValue("approvestatus");
return status==null||status!=BillStatusEnum.FREE.toIntValue()&&status!=BillStatusEnum.NOPASS.toIntValue();
}).map(item->item)
.collect(Collectors.toList());
return status == null
|| status != BillStatusEnum.FREE.toIntValue() && status != BillStatusEnum.NOPASS.toIntValue();
}).map(item -> item).collect(Collectors.toList());
if (list == null || list.size() == 0) {
return;
}
@ -404,22 +423,20 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydM
}
throw new BusinessException(errors);
}
/**
* 收回前校验:
* 检查单据状态
* 收回前校验: 检查单据状态
*
* @throws BusinessException
* */
*/
private void validateUnCommitAggDhjydMasterVO(AggDhjydMasterVO... vos) throws BusinessException {
if (ArrayUtils.isEmpty(vos)) {
return;
}
List<AggDhjydMasterVO> list = Arrays.stream(vos)
.filter(item ->item.getParentVO()!=null)
.filter(item->{
List<AggDhjydMasterVO> list = Arrays.stream(vos).filter(item -> item.getParentVO() != null).filter(item -> {
Integer status = (Integer) item.getParentVO().getAttributeValue("approvestatus");
return status == null || status == BillStatusEnum.FREE.toIntValue();
}).map(item->item)
.collect(Collectors.toList());
}).map(item -> item).collect(Collectors.toList());
if (list == null || list.size() == 0) {
return;
}
@ -429,8 +446,41 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydM
}
throw new BusinessException(errors);
}
private void validateUnCommitInOrder(AggDhjydMasterVO... vos) throws BusinessException {
if (ArrayUtils.isEmpty(vos)) {
return;
}
List<AggDhjydMasterVO> list = Arrays.stream(vos).filter(item -> item.getParentVO() != null).filter(item -> {
String csourceid = (String) item.getParentVO().getAttributeValue("csourceid");
return csourceid != null && !"".equals(csourceid);
}).map(item -> item).collect(Collectors.toList());
if (list == null || list.size() == 0) {
return;
}
String errors = "";
for (AggDhjydMasterVO vo : list) {
DhjydMasterVO jydMasterVO = vo.getParentVO();
// 到货单的id 采购入库单的来源主键是到货单的主键
String csourceid = jydMasterVO.getAttributeValue("csourceid") + "";
if ("".equals(csourceid) || "null".equals(csourceid)) {
continue;
}
// 查询采购入库单是否存在该id
String countSql = "select count(1) from IC_PURCHASEIN_B where csourcebillhid = " + csourceid;
Integer num = (Integer) getBaseDAO().executeQuery(countSql, new ColumnProcessor());
if (num > 0) {
errors += "单据号:[" + jydMasterVO.getAttributeValue("vbillcode") + "]收回失败,失败原因:到货单已入库,请勿收回。\n";
}
}
if (!"".equals(errors)) {
throw new BusinessException(errors);
}
}
@Override
public Object commitAggDhjydMasterVO(String actionName,Map<String,String> tsMap,Object assign) throws BusinessException{
public Object commitAggDhjydMasterVO(String actionName, Map<String, String> tsMap, Object assign)
throws BusinessException {
AggDhjydMasterVO[] vos = dao.listByPk(AggDhjydMasterVO.class, getAllPks(tsMap), false);
validateTs(tsMap, vos);
// 提交前校验及业务逻辑
@ -457,6 +507,7 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydM
validateTs(tsMap, vos);
// 收回前校验及业务逻辑
validateUnCommitAggDhjydMasterVO(vos);
validateUnCommitInOrder(vos);
Map<String, Object> res = this.execFlows(actionName, "DHJY", vos);
// 收回后业务逻辑
return res;
@ -482,7 +533,6 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydM
}
@Override
public AggDhjydMasterVO[] callbackSAVE(AggDhjydMasterVO... vos) throws BusinessException {
if (ArrayUtils.isEmpty(vos)) {
@ -496,7 +546,6 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydM
}
@Override
public AggDhjydMasterVO[] callbackUNSAVE(AggDhjydMasterVO... vos) throws BusinessException {
if (ArrayUtils.isEmpty(vos)) {
@ -506,7 +555,6 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydM
}
@Override
public AggDhjydMasterVO[] callbackAPPROVE(AggDhjydMasterVO... vos) throws BusinessException {
if (ArrayUtils.isEmpty(vos)) {
@ -516,7 +564,6 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydM
}
@Override
public AggDhjydMasterVO[] callbackUNAPPROVE(AggDhjydMasterVO... vos) throws BusinessException {
if (ArrayUtils.isEmpty(vos)) {
@ -526,14 +573,22 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydM
}
@Override
public BillCodeContext getBillCodeContext(String coderuleid) throws BusinessException {
return super.getBillCodeContext(coderuleid);
}
@Override
public BillCodeContext getBillCodeContext(String coderuleid, String pkgroup, String pkorg) throws BusinessException{
public BillCodeContext getBillCodeContext(String coderuleid, String pkgroup, String pkorg)
throws BusinessException {
return super.getBillCodeContext(coderuleid, pkgroup, pkorg);
}
private BaseDAO getBaseDAO() {
if (this.baseDAO == null) {
this.baseDAO = new BaseDAO();
}
return this.baseDAO;
}
}