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

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

@ -12,39 +12,40 @@ import nccloud.framework.core.exception.ExceptionUtils;
import nc.vo.pu.dhjyd.AggDhjydMasterVO;
import nc.itf.pu.dhjyd.dhjydmaster.IDhjydMasterVOService;
public class PFlowDhjydMasterVOAction extends BaseAction{
public class PFlowDhjydMasterVOAction extends BaseAction {
@Override
public Object doAction(IRequest request, RequstParamWapper paramWapper) throws Throwable{
RequestDTO param = VOTransform.toVO(paramWapper.requestString,RequestDTO.class);
Map<String,String> tsMap = param.getTsMap();
public Object doAction(IRequest request, RequstParamWapper paramWapper) throws Throwable {
RequestDTO param = VOTransform.toVO(paramWapper.requestString, RequestDTO.class);
Map<String, String> tsMap = param.getTsMap();
String actionName = param.getActionName();
if(tsMap==null || tsMap.size()==0){
if (tsMap == null || tsMap.size() == 0) {
ExceptionUtils.wrapBusinessException("请选择需要操作的数据!");
}
Map<String,Object> userJson = param.getUserJson();
Object assign=null;//指派信息
if(userJson!=null&&userJson.get("assign")!=null) {//获取指派信息
Map<String, Object> userJson = param.getUserJson();
Object assign = null;// 指派信息
if (userJson != null && userJson.get("assign") != null) {// 获取指派信息
assign = userJson.get("assign");
}
return this.exeFlow(actionName,tsMap,assign);
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";//提交收回
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);
Object res = null;
if(tsMap.size()==1){//单个操作
if(ACTION_SAVE.equals(actionName)){//单个提交
res = service.commitAggDhjydMasterVO(actionName,tsMap,assign);
}else if(ACTION_UNSAVE.equals(actionName)){//单个收回
res = service.uncommitAggDhjydMasterVO(actionName,tsMap);
if (tsMap.size() == 1) {// 单个操作
if (ACTION_SAVE.equals(actionName)) {// 单个提交
res = service.commitAggDhjydMasterVO(actionName, tsMap, assign);
} else if (ACTION_UNSAVE.equals(actionName)) {// 单个收回
res = service.uncommitAggDhjydMasterVO(actionName, tsMap);
}
}else{//批量操作
if(ACTION_SAVE.equals(actionName)){//批量提交
} else {// 批量操作
if (ACTION_SAVE.equals(actionName)) {// 批量提交
res = service.batchCommitAggDhjydMasterVO(actionName, tsMap);
}else if(ACTION_UNSAVE.equals(actionName)){//批量收回
} else if (ACTION_UNSAVE.equals(actionName)) {// 批量收回
res = service.batchUncommitAggDhjydMasterVO(actionName, tsMap);
}
}

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,64 +29,70 @@ 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 {
public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydMasterVOService {
private BaseDAO baseDAO = null;
@Override
public AggDhjydMasterVO[] listAggDhjydMasterVOByPk(String...pks) throws BusinessException{
return listAggDhjydMasterVOByPk(false,pks);
public AggDhjydMasterVO[] listAggDhjydMasterVOByPk(String... pks) throws BusinessException {
return listAggDhjydMasterVOByPk(false, pks);
}
@Override
public AggDhjydMasterVO[] listAggDhjydMasterVOByPk(boolean blazyLoad,String... pks) throws BusinessException{
return dao.listByPksWithOrder(AggDhjydMasterVO.class,pks,blazyLoad);
public AggDhjydMasterVO[] listAggDhjydMasterVOByPk(boolean blazyLoad, String... pks) throws BusinessException {
return dao.listByPksWithOrder(AggDhjydMasterVO.class, pks, blazyLoad);
}
@Override
public AggDhjydMasterVO findAggDhjydMasterVOByPk(String pk) throws BusinessException{
public AggDhjydMasterVO findAggDhjydMasterVOByPk(String pk) throws BusinessException {
return dao.findByPk(AggDhjydMasterVO.class, pk, false);
}
@Override
public AggDhjydMasterVO[] listAggDhjydMasterVOByCondition(String condition) throws BusinessException{
return listAggDhjydMasterVOByCondition(condition,new String[]{"pk_chekbill_h"});
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{
return dao.listByCondition(AggDhjydMasterVO.class, condition, false,false,orderPath);
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{
public DhjydMasterVO[] listDhjydMasterVOByPk(String... pks) throws BusinessException {
return dao.listByPk(DhjydMasterVO.class, pks, true);
}
@Override
public DhjydMasterVO findDhjydMasterVOByPk(String pk) throws BusinessException{
public DhjydMasterVO findDhjydMasterVOByPk(String pk) throws BusinessException {
return dao.findByPk(DhjydMasterVO.class, pk, true);
}
@Override
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);
public DhjydMasterVO[] listDhjydMasterVOByCondition(String condition) throws BusinessException {
return listDhjydMasterVOByCondition(condition, new String[] { "pk_chekbill_h" });
}
@Override
public String[] listDhjydMasterVOPkByCond(String condition) throws BusinessException{
return listDhjydMasterVOPkByCond(condition,new String[]{"pk_chekbill_h"});
public DhjydMasterVO[] listDhjydMasterVOByCondition(String condition, String[] orderPath) throws BusinessException {
return dao.listByCondition(DhjydMasterVO.class, condition, false, false, orderPath);
}
@Override
public String[] listDhjydMasterVOPkByCond(String condition,String[] orderPath) throws BusinessException{
if(StringUtils.isEmpty(condition)) {
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)) {
condition = " 1 = 1 ";
}
StringBuilder sql = new StringBuilder();
@ -101,142 +109,152 @@ 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){
vo.setAttributeValue("pk_group",InvocationInfoProxy.getInstance().getGroupId());
public void initDefaultData(DhjydMasterVO vo) {
if (vo.getAttributeValue("pk_group") == null) {
vo.setAttributeValue("pk_group", InvocationInfoProxy.getInstance().getGroupId());
}
if(vo.getAttributeValue("billmaker") == null){
vo.setAttributeValue("billmaker",InvocationInfoProxy.getInstance().getUserId());
if (vo.getAttributeValue("billmaker") == null) {
vo.setAttributeValue("billmaker", InvocationInfoProxy.getInstance().getUserId());
}
if(vo.getAttributeValue("maketime") == null){
vo.setAttributeValue("maketime",new UFDateTime(InvocationInfoProxy.getInstance().getBizDateTime()));
if (vo.getAttributeValue("maketime") == null) {
vo.setAttributeValue("maketime", new UFDateTime(InvocationInfoProxy.getInstance().getBizDateTime()));
}
if(vo.getAttributeValue("billtype") == null){
vo.setAttributeValue("billtype","DHJY");
if (vo.getAttributeValue("billtype") == null) {
vo.setAttributeValue("billtype", "DHJY");
}
if(vo.getAttributeValue("approvestatus") == null){
vo.setAttributeValue("approvestatus",BillStatusEnum.FREE.toIntValue());
if (vo.getAttributeValue("approvestatus") == null) {
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));
initDefaultData((DhjydMasterVO) getMainVO(vo));
//下面这段要判断是否是树表界面插件
Map<String,String> data = userJson!=null && userJson.get("data") != null?(Map<String,String>)userJson.get("data"):null;
if(data!=null && data.size()>0){
// 下面这段要判断是否是树表界面插件
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");
getMainVO(vo).setAttributeValue(parentKey,parentPk);
getMainVO(vo).setAttributeValue(parentKey, parentPk);
}
//编码规则生成vo的编码
// 编码规则生成vo的编码
BillCodeContext billCodeContext = getBillCodeContext("pudhjyd");
if(billCodeContext == null){
throw new BusinessException("当前编码规则不存在,请到【编码规则定义-全局】节点检查是否存在"+"pudhjyd");
if (billCodeContext == null) {
throw new BusinessException("当前编码规则不存在,请到【编码规则定义-全局】节点检查是否存在" + "pudhjyd");
}
if(billCodeContext.isPrecode()){
if (billCodeContext.isPrecode()) {
String pk_group = InvocationInfoProxy.getInstance().getGroupId();
String code = getBillcodeManage().getPreBillCode_RequiresNew("pudhjyd", pk_group, pk_group);
getMainVO(vo).setAttributeValue("code",code);
getMainVO(vo).setAttributeValue("code", code);
}
return vo;
}
@Override
public AggDhjydMasterVO preAddAggDhjydMasterVO(Map<String,Object> userJson) throws BusinessException{
public AggDhjydMasterVO preAddAggDhjydMasterVO(Map<String, Object> userJson) throws BusinessException {
AggDhjydMasterVO result = null;
DhjydMasterVO mainvo = new DhjydMasterVO();
//设置默认值
// 设置默认值
initDefaultData(mainvo);
AggDhjydMasterVO aggvo = new AggDhjydMasterVO();
aggvo.setParent(mainvo);
result = aggvo;
return preAddAggDhjydMasterVO(result,userJson);
return preAddAggDhjydMasterVO(result, userJson);
}
@Override
public AggDhjydMasterVO preEditAggDhjydMasterVO(String pk) throws BusinessException{
public AggDhjydMasterVO preEditAggDhjydMasterVO(String pk) throws BusinessException {
return dao.findByPk(AggDhjydMasterVO.class, pk, false);
}
@Override
public AggDhjydMasterVO copyAggDhjydMasterVO(String pk) throws BusinessException{
public AggDhjydMasterVO copyAggDhjydMasterVO(String pk) throws BusinessException {
AggDhjydMasterVO vo = dao.findByPk(AggDhjydMasterVO.class, pk, false);
getMainVO(vo).setPrimaryKey(null);
getMainVO(vo).setStatus(VOStatus.NEW);
getMainVO(vo).setAttributeValue("srcbilltype",null);
getMainVO(vo).setAttributeValue("srcbillid",null);
getMainVO(vo).setAttributeValue("srcbilltype", null);
getMainVO(vo).setAttributeValue("srcbillid", null);
getMainVO(vo).setAttributeValue("code",null);
getMainVO(vo).setAttributeValue("",null);
//编码规则生成vo的编码
getMainVO(vo).setAttributeValue("code", null);
getMainVO(vo).setAttributeValue("", null);
// 编码规则生成vo的编码
BillCodeContext billCodeContext = getBillCodeContext("pudhjyd");
if(billCodeContext == null){
throw new BusinessException("当前编码规则不存在,请到【编码规则定义-全局】节点检查是否存在"+"pudhjyd");
if (billCodeContext == null) {
throw new BusinessException("当前编码规则不存在,请到【编码规则定义-全局】节点检查是否存在" + "pudhjyd");
}
if(billCodeContext.isPrecode()){
if (billCodeContext.isPrecode()) {
String pk_group = InvocationInfoProxy.getInstance().getGroupId();
String code = getBillcodeManage().getPreBillCode_RequiresNew("pudhjyd", pk_group, pk_group);
getMainVO(vo).setAttributeValue("code",code);
getMainVO(vo).setAttributeValue("code", code);
}
getMainVO(vo).setAttributeValue("approvestatus", BillStatusEnum.FREE.toIntValue());
getMainVO(vo).setAttributeValue("billmaker", InvocationInfoProxy.getInstance().getUserId());
getMainVO(vo).setAttributeValue("approver", null);
getMainVO(vo).setAttributeValue("approvenote", null);
getMainVO(vo).setAttributeValue("approvedate", null);
//设置审计信息为空
getMainVO(vo).setAttributeValue("creator",null);
getMainVO(vo).setAttributeValue("creationtime",null);
getMainVO(vo).setAttributeValue("modifier",null);
getMainVO(vo).setAttributeValue("modifiedtime",null);
// 设置审计信息为空
getMainVO(vo).setAttributeValue("creator", null);
getMainVO(vo).setAttributeValue("creationtime", null);
getMainVO(vo).setAttributeValue("modifier", null);
getMainVO(vo).setAttributeValue("modifiedtime", null);
getMainVO(vo).setAttributeValue("maketime", new UFDateTime(InvocationInfoProxy.getInstance().getBizDateTime()));
DhjydSlave0VO[] dhjydSlave0VOs = (DhjydSlave0VO[])vo.getChildren(DhjydSlave0VO.class);
if(dhjydSlave0VOs!=null && dhjydSlave0VOs.length>0){
Arrays.stream(dhjydSlave0VOs).forEach(subvo->{
DhjydSlave0VO[] dhjydSlave0VOs = (DhjydSlave0VO[]) vo.getChildren(DhjydSlave0VO.class);
if (dhjydSlave0VOs != null && dhjydSlave0VOs.length > 0) {
Arrays.stream(dhjydSlave0VOs).forEach(subvo -> {
subvo.setPrimaryKey(null);
subvo.setStatus(VOStatus.NEW);
subvo.setAttributeValue("srcbilltype",null);
subvo.setAttributeValue("srcbillid",null);
subvo.setAttributeValue("srcbilltype", null);
subvo.setAttributeValue("srcbillid", null);
subvo.setAttributeValue("rowno", null);
subvo.setAttributeValue("srcrowno", null);
});
}
return vo;
}
@Override
public AggDhjydMasterVO[] saveAggDhjydMasterVO(AggDhjydMasterVO vo) throws BusinessException{
public AggDhjydMasterVO[] saveAggDhjydMasterVO(AggDhjydMasterVO vo) throws BusinessException {
String pk = getVOPrimaryKey(vo);
setDefaultVal(vo);
if(StringUtils.isEmpty(pk)){
return dao.insert(vo); //插入
}else{
return dao.update(vo); //更新
if (StringUtils.isEmpty(pk)) {
return dao.insert(vo); // 插入
} else {
return dao.update(vo); // 更新
}
}
/**
* 保存前处理编码规则
*
* @param vos
*/
private void setBillCode(AggDhjydMasterVO... vos) throws BusinessException {
if(ArrayUtils.isNotEmpty(vos)) {
for(AggDhjydMasterVO vo : vos) {
if (ArrayUtils.isNotEmpty(vos)) {
for (AggDhjydMasterVO vo : vos) {
String pk = getVOPrimaryKey(vo);
if(StringUtils.isEmpty(pk)){
if (StringUtils.isEmpty(pk)) {
BillCodeContext billCodeContext = getBillCodeContext("pudhjyd");
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));
getMainVO(vo).setAttributeValue("code",code);
if (billCodeContext != null && !billCodeContext.isPrecode()) {
if (getMainVO(vo).getAttributeValue("code") == null) {
String code = getBillcodeManage().getBillCode_RequiresNew("pudhjyd", pk_group, pk_group,
getMainVO(vo));
getMainVO(vo).setAttributeValue("code", code);
}
} else {
String code = (String) getMainVO(vo).getAttributeValue("code");
@ -246,40 +264,44 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydM
}
}
}
/**
* 保存前设置审计信息
*
* @param vos
*/
private void setAuditInfo(AggDhjydMasterVO... vos) throws BusinessException {
if(ArrayUtils.isNotEmpty(vos)) {
if (ArrayUtils.isNotEmpty(vos)) {
UFDateTime now = new UFDateTime();
for(AggDhjydMasterVO vo : vos) {
for (AggDhjydMasterVO vo : vos) {
String pk = getVOPrimaryKey(vo);
if(StringUtils.isEmpty(pk)){
//设置创建人创建时间
getMainVO(vo).setAttributeValue("creator",InvocationInfoProxy.getInstance().getUserId());
getMainVO(vo).setAttributeValue("creationtime",now);
getMainVO(vo).setAttributeValue("maketime",now);
if (StringUtils.isEmpty(pk)) {
// 设置创建人创建时间
getMainVO(vo).setAttributeValue("creator", InvocationInfoProxy.getInstance().getUserId());
getMainVO(vo).setAttributeValue("creationtime", now);
getMainVO(vo).setAttributeValue("maketime", now);
getMainVO(vo).setAttributeValue("billmaker", InvocationInfoProxy.getInstance().getUserId()); // 制单人
getMainVO(vo).setAttributeValue("modifier",null);
getMainVO(vo).setAttributeValue("modifiedtime",null);
}else{
//设置修改人修改时间
getMainVO(vo).setAttributeValue("modifier",InvocationInfoProxy.getInstance().getUserId());
getMainVO(vo).setAttributeValue("modifiedtime",now);
getMainVO(vo).setAttributeValue("lastmaketime",now);
getMainVO(vo).setAttributeValue("modifier", null);
getMainVO(vo).setAttributeValue("modifiedtime", null);
} else {
// 设置修改人修改时间
getMainVO(vo).setAttributeValue("modifier", InvocationInfoProxy.getInstance().getUserId());
getMainVO(vo).setAttributeValue("modifiedtime", now);
getMainVO(vo).setAttributeValue("lastmaketime", now);
}
}
}
}
/**
* 保存前处理一些默认值
*
* @param vos
*/
private void setDefaultVal(AggDhjydMasterVO... vos) throws BusinessException {
setBillCode(vos);
setAuditInfo(vos);
//其他默认值处理
// 其他默认值处理
}
// 给单表行编辑表单独适配
@ -303,237 +325,270 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydM
throw new BusinessException("" + (i + 1) + "张单据处理失败:单据状态不正确,不能删除!");
}
// 删除单据时回退单据号
String code = (String)mainVO.getAttributeValue("code");
String code = (String) mainVO.getAttributeValue("code");
if (StringUtils.isNotEmpty(code)) {
String pk_group = InvocationInfoProxy.getInstance().getGroupId();
getBillcodeManage().returnBillCodeOnDelete("pudhjyd", pk_group, pk_group, code, deleteVOs[i]);
}
}
return dao.save(vos,true);
return dao.save(vos, true);
}
@Override
public AggDhjydMasterVO[] deleteAggDhjydMasterVOs(Map<String,String> tsMap) throws BusinessException{
AggDhjydMasterVO[] vos = dao.listByPk(AggDhjydMasterVO.class,tsMap.keySet().toArray(new String[0]));
validate(vos,tsMap);
public AggDhjydMasterVO[] deleteAggDhjydMasterVOs(Map<String, String> tsMap) throws BusinessException {
AggDhjydMasterVO[] vos = dao.listByPk(AggDhjydMasterVO.class, tsMap.keySet().toArray(new String[0]));
validate(vos, tsMap);
String pk_group = InvocationInfoProxy.getInstance().getGroupId();
Arrays.stream(vos).forEach(vo->{
String code = (String)getMainVO(vo).getAttributeValue("code");
Arrays.stream(vos).forEach(vo -> {
String code = (String) getMainVO(vo).getAttributeValue("code");
try {
getBillcodeManage().returnBillCodeOnDelete("pudhjyd",pk_group,pk_group,code,vo);
getBillcodeManage().returnBillCodeOnDelete("pudhjyd", pk_group, pk_group, code, vo);
} catch (BusinessException e) {
ExceptionUtils.wrapException(e.getMessage(),e);
ExceptionUtils.wrapException(e.getMessage(), e);
}
});
dao.delete(vos,true);
dao.delete(vos, true);
return vos;
}
//校验 包括ts校验 已提交校验
private void validate(AggDhjydMasterVO[] vos,Map<String,String> tsMap) throws BusinessException{
// 校验 包括ts校验 已提交校验
private void validate(AggDhjydMasterVO[] vos, Map<String, String> tsMap) throws BusinessException {
Boolean isPass = true;
String error = ""; //错误信息
if(ArrayUtils.isEmpty(vos)){
String error = ""; // 错误信息
if (ArrayUtils.isEmpty(vos)) {
isPass = false;
}
for(int i = 0 ; i < vos.length ; i++){
for (int i = 0; i < vos.length; i++) {
SuperVO mainvo = vos[i].getParentVO();
UFDateTime ts = (UFDateTime)mainvo.getAttributeValue("ts");
if(!StringUtils.equals(tsMap.get(mainvo.getPrimaryKey()),ts.toString())){
UFDateTime ts = (UFDateTime) mainvo.getAttributeValue("ts");
if (!StringUtils.equals(tsMap.get(mainvo.getPrimaryKey()), ts.toString())) {
isPass = false;
break;
}
Integer approvestatus = (Integer) mainvo.getAttributeValue("approvestatus");
if(approvestatus == null || approvestatus != BillStatusEnum.FREE.toIntValue()){
error += ""+(i+1)+"张单据处理失败:审批状态不正确,不能删除!\n";
if (approvestatus == null || approvestatus != BillStatusEnum.FREE.toIntValue()) {
error += "" + (i + 1) + "张单据处理失败:审批状态不正确,不能删除!\n";
}
}
if(!isPass) {
if (!isPass) {
throw new BusinessException("您操作的数据已被他人修改或删除,请刷新后重试!");
}
if(!"".equals(error)){
if (!"".equals(error)) {
throw new BusinessException(error);
}
}
@Override
public <T> T[] loadTreeData(Class<T> clazz,Map<String,Object> userJson) throws BusinessException{
public <T> T[] loadTreeData(Class<T> clazz, Map<String, Object> userJson) throws BusinessException {
String condition = "dr = 0 ";
return dao.listByCondition(clazz, condition, false);
}
@Override
public String[] queryChildPksByParentId(Class childClazz, String parentId) throws BusinessException{
public String[] queryChildPksByParentId(Class childClazz, String parentId) throws BusinessException {
String cond = " pk_chekbill_h = '" + parentId + "' ";
SuperVO[] vos = (SuperVO[]) dao.listByCondition(childClazz, cond, false);
SuperVO[] vos = (SuperVO[]) dao.listByCondition(childClazz, cond, false);
if (vos == null || vos.length == 0) {
return new String[0];
}
return Stream.of(vos).map(vo -> vo.getPrimaryKey()).toArray(String[]::new);
}
public SuperVO[] queryChildVOByPks(Class childClazz, String[] pks) throws BusinessException{
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 ;
if (ArrayUtils.isEmpty(vos)) {
return;
}
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());
if(list == null||list.size() == 0) {
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());
if (list == null || list.size() == 0) {
return;
}
String errors = "";
for(AggDhjydMasterVO vo : list) {
errors+="单据号:["+vo.getParentVO().getAttributeValue("code")+"]提交失败,失败原因:单据状态不正确,请检查。\n";
for (AggDhjydMasterVO vo : list) {
errors += "单据号:[" + vo.getParentVO().getAttributeValue("code") + "]提交失败,失败原因:单据状态不正确,请检查。\n";
}
throw new BusinessException(errors);
}
/**
* 收回前校验:
* 检查单据状态
* 收回前校验: 检查单据状态
*
* @throws BusinessException
* */
*/
private void validateUnCommitAggDhjydMasterVO(AggDhjydMasterVO... vos) throws BusinessException {
if(ArrayUtils.isEmpty(vos)) {
return ;
if (ArrayUtils.isEmpty(vos)) {
return;
}
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());
if(list == null||list.size() == 0) {
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());
if (list == null || list.size() == 0) {
return;
}
String errors = "";
for(AggDhjydMasterVO vo : list) {
errors+="单据号:["+vo.getParentVO().getAttributeValue("code")+"]收回失败,失败原因:单据状态不正确,请检查。\n";
for (AggDhjydMasterVO vo : list) {
errors += "单据号:[" + vo.getParentVO().getAttributeValue("code") + "]收回失败,失败原因:单据状态不正确,请检查。\n";
}
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{
AggDhjydMasterVO[] vos = dao.listByPk(AggDhjydMasterVO.class,getAllPks(tsMap),false);
validateTs(tsMap,vos);
//提交前校验及业务逻辑
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);
// 提交前校验及业务逻辑
validateCommitAggDhjydMasterVO(vos);
Map<String,Object> res = this.execFlows(actionName,"DHJY",assign,vos);
//提交后业务逻辑
Map<String, Object> res = this.execFlows(actionName, "DHJY", assign, vos);
// 提交后业务逻辑
return res;
}
@Override
public Object batchCommitAggDhjydMasterVO(String actionName,Map<String,String> tsMap) throws BusinessException{
AggDhjydMasterVO[] vos = dao.listByPk(AggDhjydMasterVO.class,getAllPks(tsMap),false);
validateTs(tsMap,vos);
//批量提交前校验及业务逻辑
public Object batchCommitAggDhjydMasterVO(String actionName, Map<String, String> tsMap) throws BusinessException {
AggDhjydMasterVO[] vos = dao.listByPk(AggDhjydMasterVO.class, getAllPks(tsMap), false);
validateTs(tsMap, vos);
// 批量提交前校验及业务逻辑
validateCommitAggDhjydMasterVO(vos);
Map<String,Object> res = this.execFlows(actionName,"DHJY",vos);
//批量提交后业务逻辑
Map<String, Object> res = this.execFlows(actionName, "DHJY", vos);
// 批量提交后业务逻辑
return res;
}
@Override
public Object uncommitAggDhjydMasterVO(String actionName,Map<String,String> tsMap) throws BusinessException{
AggDhjydMasterVO[] vos = dao.listByPk(AggDhjydMasterVO.class,getAllPks(tsMap),false);
validateTs(tsMap,vos);
//收回前校验及业务逻辑
public Object uncommitAggDhjydMasterVO(String actionName, Map<String, String> tsMap) throws BusinessException {
AggDhjydMasterVO[] vos = dao.listByPk(AggDhjydMasterVO.class, getAllPks(tsMap), false);
validateTs(tsMap, vos);
// 收回前校验及业务逻辑
validateUnCommitAggDhjydMasterVO(vos);
Map<String,Object> res = this.execFlows(actionName,"DHJY",vos);
//收回后业务逻辑
validateUnCommitInOrder(vos);
Map<String, Object> res = this.execFlows(actionName, "DHJY", vos);
// 收回后业务逻辑
return res;
}
@Override
public Object batchUncommitAggDhjydMasterVO(String actionName,Map<String,String> tsMap) throws BusinessException{
AggDhjydMasterVO[] vos = dao.listByPk(AggDhjydMasterVO.class,getAllPks(tsMap),false);
validateTs(tsMap,vos);
//批量收回前校验及业务逻辑
public Object batchUncommitAggDhjydMasterVO(String actionName, Map<String, String> tsMap) throws BusinessException {
AggDhjydMasterVO[] vos = dao.listByPk(AggDhjydMasterVO.class, getAllPks(tsMap), false);
validateTs(tsMap, vos);
// 批量收回前校验及业务逻辑
validateUnCommitAggDhjydMasterVO(vos);
Map<String,Object> res = this.execFlows(actionName,"DHJY",vos);
//批量收回后业务逻辑
Map<String, Object> res = this.execFlows(actionName, "DHJY", vos);
// 批量收回后业务逻辑
return res;
}
@Override
public AggDhjydMasterVO[] callbackSAVEBASE(AggDhjydMasterVO...vos) throws BusinessException{
if(ArrayUtils.isEmpty(vos)) {
public AggDhjydMasterVO[] callbackSAVEBASE(AggDhjydMasterVO... vos) throws BusinessException {
if (ArrayUtils.isEmpty(vos)) {
return null;
}
return this.saveAggDhjydMasterVO(vos);
}
@Override
public AggDhjydMasterVO[] callbackSAVE(AggDhjydMasterVO...vos) throws BusinessException{
if(ArrayUtils.isEmpty(vos)) {
public AggDhjydMasterVO[] callbackSAVE(AggDhjydMasterVO... vos) throws BusinessException {
if (ArrayUtils.isEmpty(vos)) {
return null;
}
//同步单据状态和审批状态(只有提交时候需要手动设置审批状态其余审批完后审批状态都已更新)
Arrays.stream(vos).forEach(v->{
v.getParent().setAttributeValue("approvestatus",BillStatusEnum.COMMIT.toIntValue());
// 同步单据状态和审批状态(只有提交时候需要手动设置审批状态其余审批完后审批状态都已更新)
Arrays.stream(vos).forEach(v -> {
v.getParent().setAttributeValue("approvestatus", BillStatusEnum.COMMIT.toIntValue());
});
return this.saveAggDhjydMasterVO(vos);
}
@Override
public AggDhjydMasterVO[] callbackUNSAVE(AggDhjydMasterVO...vos) throws BusinessException{
if(ArrayUtils.isEmpty(vos)) {
public AggDhjydMasterVO[] callbackUNSAVE(AggDhjydMasterVO... vos) throws BusinessException {
if (ArrayUtils.isEmpty(vos)) {
return null;
}
return this.saveAggDhjydMasterVO(vos);
}
@Override
public AggDhjydMasterVO[] callbackAPPROVE(AggDhjydMasterVO...vos) throws BusinessException{
if(ArrayUtils.isEmpty(vos)) {
public AggDhjydMasterVO[] callbackAPPROVE(AggDhjydMasterVO... vos) throws BusinessException {
if (ArrayUtils.isEmpty(vos)) {
return null;
}
return this.saveAggDhjydMasterVO(vos);
}
@Override
public AggDhjydMasterVO[] callbackUNAPPROVE(AggDhjydMasterVO...vos) throws BusinessException{
if(ArrayUtils.isEmpty(vos)) {
public AggDhjydMasterVO[] callbackUNAPPROVE(AggDhjydMasterVO... vos) throws BusinessException {
if (ArrayUtils.isEmpty(vos)) {
return null;
}
return this.saveAggDhjydMasterVO(vos);
}
@Override
public BillCodeContext getBillCodeContext(String coderuleid) throws BusinessException{
public BillCodeContext getBillCodeContext(String coderuleid) throws BusinessException {
return super.getBillCodeContext(coderuleid);
}
@Override
public BillCodeContext getBillCodeContext(String coderuleid, String pkgroup, String pkorg) throws BusinessException{
return super.getBillCodeContext(coderuleid,pkgroup,pkorg);
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;
}
}