diff --git a/ic/pu/src/client/nccloud/web/pu/dhjyd/dhjydmaster/action/PFlowDhjydMasterVOAction.java b/ic/pu/src/client/nccloud/web/pu/dhjyd/dhjydmaster/action/PFlowDhjydMasterVOAction.java index 3e66bd9..a2f9711 100644 --- a/ic/pu/src/client/nccloud/web/pu/dhjyd/dhjydmaster/action/PFlowDhjydMasterVOAction.java +++ b/ic/pu/src/client/nccloud/web/pu/dhjyd/dhjydmaster/action/PFlowDhjydMasterVOAction.java @@ -12,43 +12,44 @@ 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 tsMap = param.getTsMap(); + public Object doAction(IRequest request, RequstParamWapper paramWapper) throws Throwable { + RequestDTO param = VOTransform.toVO(paramWapper.requestString, RequestDTO.class); + Map tsMap = param.getTsMap(); String actionName = param.getActionName(); - if(tsMap==null || tsMap.size()==0){ + if (tsMap == null || tsMap.size() == 0) { ExceptionUtils.wrapBusinessException("请选择需要操作的数据!"); } - Map userJson = param.getUserJson(); - Object assign=null;//指派信息 - if(userJson!=null&&userJson.get("assign")!=null) {//获取指派信息 + Map 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 tsMap,Object assign) throws BusinessException{ - final String ACTION_SAVE="SAVE",ACTION_UNSAVE="UNSAVE";//提交、收回 + + private Object exeFlow(String actionName, Map 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); } } - + return res; } } \ No newline at end of file diff --git a/ic/pu/src/private/nc/impl/pu/dhjyd/dhjydmaster/DhjydMasterVOServiceImpl.java b/ic/pu/src/private/nc/impl/pu/dhjyd/dhjydmaster/DhjydMasterVOServiceImpl.java index 861f2d1..4a1319d 100644 --- a/ic/pu/src/private/nc/impl/pu/dhjyd/dhjydmaster/DhjydMasterVOServiceImpl.java +++ b/ic/pu/src/private/nc/impl/pu/dhjyd/dhjydmaster/DhjydMasterVOServiceImpl.java @@ -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 userJson) throws BusinessException{ + public AggDhjydMasterVO preAddAggDhjydMasterVO(AggDhjydMasterVO vo, Map userJson) + throws BusinessException { getMainVO(vo).setStatus(VOStatus.NEW); - initDefaultData((DhjydMasterVO)getMainVO(vo)); + initDefaultData((DhjydMasterVO) getMainVO(vo)); - //下面这段要判断是否是树表界面插件 - Map data = userJson!=null && userJson.get("data") != null?(Map)userJson.get("data"):null; - if(data!=null && data.size()>0){ + // 下面这段要判断是否是树表界面插件 + Map data = userJson != null && userJson.get("data") != null + ? (Map) 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 userJson) throws BusinessException{ + public AggDhjydMasterVO preAddAggDhjydMasterVO(Map 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 tsMap) throws BusinessException{ - AggDhjydMasterVO[] vos = dao.listByPk(AggDhjydMasterVO.class,tsMap.keySet().toArray(new String[0])); - validate(vos,tsMap); + public AggDhjydMasterVO[] deleteAggDhjydMasterVOs(Map 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 tsMap) throws BusinessException{ + + // 校验 包括ts校验 已提交校验 + private void validate(AggDhjydMasterVO[] vos, Map 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[] loadTreeData(Class clazz,Map userJson) throws BusinessException{ + public T[] loadTreeData(Class clazz, Map 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 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 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 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 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 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 tsMap,Object assign) throws BusinessException{ - AggDhjydMasterVO[] vos = dao.listByPk(AggDhjydMasterVO.class,getAllPks(tsMap),false); - validateTs(tsMap,vos); - //提交前校验及业务逻辑 + public Object commitAggDhjydMasterVO(String actionName, Map tsMap, Object assign) + throws BusinessException { + AggDhjydMasterVO[] vos = dao.listByPk(AggDhjydMasterVO.class, getAllPks(tsMap), false); + validateTs(tsMap, vos); + // 提交前校验及业务逻辑 validateCommitAggDhjydMasterVO(vos); - Map res = this.execFlows(actionName,"DHJY",assign,vos); - //提交后业务逻辑 + Map res = this.execFlows(actionName, "DHJY", assign, vos); + // 提交后业务逻辑 return res; } @Override - public Object batchCommitAggDhjydMasterVO(String actionName,Map tsMap) throws BusinessException{ - AggDhjydMasterVO[] vos = dao.listByPk(AggDhjydMasterVO.class,getAllPks(tsMap),false); - validateTs(tsMap,vos); - //批量提交前校验及业务逻辑 + public Object batchCommitAggDhjydMasterVO(String actionName, Map tsMap) throws BusinessException { + AggDhjydMasterVO[] vos = dao.listByPk(AggDhjydMasterVO.class, getAllPks(tsMap), false); + validateTs(tsMap, vos); + // 批量提交前校验及业务逻辑 validateCommitAggDhjydMasterVO(vos); - Map res = this.execFlows(actionName,"DHJY",vos); - //批量提交后业务逻辑 + Map res = this.execFlows(actionName, "DHJY", vos); + // 批量提交后业务逻辑 return res; } @Override - public Object uncommitAggDhjydMasterVO(String actionName,Map tsMap) throws BusinessException{ - AggDhjydMasterVO[] vos = dao.listByPk(AggDhjydMasterVO.class,getAllPks(tsMap),false); - validateTs(tsMap,vos); - //收回前校验及业务逻辑 + public Object uncommitAggDhjydMasterVO(String actionName, Map tsMap) throws BusinessException { + AggDhjydMasterVO[] vos = dao.listByPk(AggDhjydMasterVO.class, getAllPks(tsMap), false); + validateTs(tsMap, vos); + // 收回前校验及业务逻辑 validateUnCommitAggDhjydMasterVO(vos); - Map res = this.execFlows(actionName,"DHJY",vos); - //收回后业务逻辑 + validateUnCommitInOrder(vos); + Map res = this.execFlows(actionName, "DHJY", vos); + // 收回后业务逻辑 return res; } @Override - public Object batchUncommitAggDhjydMasterVO(String actionName,Map tsMap) throws BusinessException{ - AggDhjydMasterVO[] vos = dao.listByPk(AggDhjydMasterVO.class,getAllPks(tsMap),false); - validateTs(tsMap,vos); - //批量收回前校验及业务逻辑 + public Object batchUncommitAggDhjydMasterVO(String actionName, Map tsMap) throws BusinessException { + AggDhjydMasterVO[] vos = dao.listByPk(AggDhjydMasterVO.class, getAllPks(tsMap), false); + validateTs(tsMap, vos); + // 批量收回前校验及业务逻辑 validateUnCommitAggDhjydMasterVO(vos); - Map res = this.execFlows(actionName,"DHJY",vos); - //批量收回后业务逻辑 + Map 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; + } + }