From 95e20dbb572ac59e473df18fda98f9a420dbdbd1 Mon Sep 17 00:00:00 2001 From: hefengkai <958118178@qq.com> Date: Mon, 21 Oct 2024 09:05:51 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=A8=E6=A3=80=E6=98=8E=E7=BB=86=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dhjyd/dhjydmaster/ArriveToDhjydImpl.java | 172 ++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 pu/src/private/nc/impl/pu/dhjyd/dhjydmaster/ArriveToDhjydImpl.java diff --git a/pu/src/private/nc/impl/pu/dhjyd/dhjydmaster/ArriveToDhjydImpl.java b/pu/src/private/nc/impl/pu/dhjyd/dhjydmaster/ArriveToDhjydImpl.java new file mode 100644 index 0000000..6680452 --- /dev/null +++ b/pu/src/private/nc/impl/pu/dhjyd/dhjydmaster/ArriveToDhjydImpl.java @@ -0,0 +1,172 @@ +package nc.impl.pu.dhjyd.dhjydmaster; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Map; + +import nc.bs.dao.BaseDAO; +import nc.bs.framework.common.InvocationInfoProxy; +import nc.bs.framework.common.NCLocator; +import nc.bs.pub.pf.PfUtilTools; +import nc.codeplatform.framework.service.ServiceSupport; +import nc.itf.pu.dhjyd.dhjydmaster.IArriveToDhjyd; +import nc.itf.pu.dhjyd.dhjydmaster.IDhjydMasterVOService; +import nc.vo.pu.dhjyd.AggDhjydMasterVO; +import nc.vo.pu.dhjyd.DhjydMasterVO; +import nc.vo.pu.dhjyd.DhjydSlave0VO; +import nc.vo.pu.m23.entity.ArriveBbVO; +import nc.vo.pu.m23.entity.ArriveHeaderVO; +import nc.vo.pu.m23.entity.ArriveItemVO; +import nc.vo.pu.m23.entity.ArriveVO; +import nc.vo.pub.BusinessException; +import nc.vo.pub.lang.UFDate; +import nccloud.framework.core.exception.ExceptionUtils; + +public class ArriveToDhjydImpl extends ServiceSupport implements IArriveToDhjyd { + + private BaseDAO baseDAO = null; + + /*** + * 到货单生成到货检验单 + * @param ArriveVO + * @return + */ + @Override + public Map createDhjyd_RequiresNew(ArriveVO arriveVO) throws BusinessException { + + try { + + ArriveHeaderVO arriveHeadVo = arriveVO.getHVO();//获取到货单表头信息 + ArriveItemVO[] arriveItems = arriveVO.getBVO();//获取到货单表体信息 + + //到货单集合获取 + ArrayList arrayList = new ArrayList(); + arrayList.add(arriveVO); + + // 单据转换 到货单-->到货检验单 + AggDhjydMasterVO[] vos = (AggDhjydMasterVO[]) PfUtilTools.runChangeDataAry("23", "DHJY", + arrayList.toArray(new ArriveVO[0])); + + DhjydMasterVO masterVO = vos[0].getParentVO();//检验单表头信息获取 + masterVO.setStatus(2);//新增(0:初始 1:更新 2:新增 3:删除) + masterVO.setBilltype("DHJY");//单据类型 + masterVO.setSrcbillid(arriveHeadVo.getPk_arriveorder());//来源单id + masterVO.setVsourcecode(arriveHeadVo.getVbillcode());//来源单据号 + masterVO.setSrcbilltype(arriveHeadVo.getCtrantypeid());//来源单据号 + masterVO.setDapplydate(new UFDate());//报检日期 + masterVO.setApprovestatus(-1);//单据审批状态-1自由态 + masterVO.setDef1(arriveItems[0].getPk_arriveorder_b());//来源子表主键id + + DhjydSlave0VO[] itemVOs = (DhjydSlave0VO[])vos[0].getChildrenVO();//检验单表体信息 + if(itemVOs != null && itemVOs.length > 0) { + for (int i = 0; i < itemVOs.length; i++) { + itemVOs[0].setStatus(2);//新增(0:初始 1:更新 2:新增 3:删除) + } + } + + // 到货检验单保存-生成保存态 + IDhjydMasterVOService dhjydMasterVO = NCLocator.getInstance().lookup(IDhjydMasterVOService.class); + dhjydMasterVO.saveAggDhjydMasterVO(vos); + } catch (Exception e) { + String errMsg = e.toString(); + if (e.getCause() != null) { + errMsg = e.getCause().toString(); + } + throw new BusinessException(errMsg); + } + + // TODO Auto-generated method stub + return null; + } + + + /*** + * 到货检验单审批完成回写到货单的质检明细 + * @param AggDhjydMasterVO + * @return + */ + @Override + public Map writeBackQc(AggDhjydMasterVO aggDhjydMasterVO) throws BusinessException { + + try { + + DhjydMasterVO dhjydMaster = aggDhjydMasterVO.getParentVO();//获取检验单表头信息 + DhjydSlave0VO[] dhjydItems = (DhjydSlave0VO[])aggDhjydMasterVO.getChildrenVO();//获取到货单表体信息 + + ArriveBbVO arriveBb = null;//到货单质检明细 + ArrayList vos = new ArrayList(); + //存在一个检验单有多个表体的情况(合格、不合格、回用) + if(dhjydItems != null && dhjydItems.length > 0) { + for(int i = 0; i < dhjydItems.length; i++) { + arriveBb = new ArriveBbVO(); + arriveBb.setPk_group(dhjydMaster.getPk_group());//所属集团id + arriveBb.setPk_arriveorder(dhjydMaster.getSrcbillid());//到货单主键id + arriveBb.setPk_arriveorder_b(dhjydMaster.getDef1());//到货单表体主键id + arriveBb.setNnum(dhjydItems[0].getNchecknum());//主数量 + arriveBb.setNastnum(dhjydItems[0].getNchecknum());//辅数量 + arriveBb.setStatus(2);//新增(0:初始 1:更新 2:新增 3:删除) + vos.add(arriveBb); + } + } else { + throw new BusinessException("检验单明细为空,无法生成质检明细!"); + } + + dao.save(vos.toArray(new ArriveBbVO[0]), true);//批量生成质检明细信息 + } catch (Exception e) { + String errMsg = e.toString(); + if (e.getCause() != null) { + errMsg = e.getCause().toString(); + } + throw new BusinessException(errMsg); + } + + // TODO Auto-generated method stub + return null; + } + + + /*** + * 到货检验审批收回时删除对应质量信息 + * @param AggDhjydMasterVO + * @return + */ + @Override + public Map deleteQc(AggDhjydMasterVO aggDhjydMasterVO) throws BusinessException { + + try { + DhjydMasterVO dhjydMaster = aggDhjydMasterVO.getParentVO();//获取检验单表头信息 + + String pk_arriveorder = dhjydMaster.getSrcbillid();//到货单主键id + String pk_arriveorder_b = dhjydMaster.getDef1();//到货单子表主键id + + String whereSql = "nvl(po_arriveorder_bb.dr,0) = 0 and po_arriveorder_bb.pk_arriveorder = '" + pk_arriveorder + "'" + +"and po_arriveorder_bb.pk_arriveorder_b = '" + pk_arriveorder_b + "'"; + + ArriveBbVO[] vos = dao.listByCondition(ArriveBbVO.class, whereSql);//质检信息查询 + dao.delete(vos, true);//删除质量信息 + } catch (Exception e) { + String errMsg = e.toString(); + if (e.getCause() != null) { + errMsg = e.getCause().toString(); + } + throw new BusinessException(errMsg); + } + + // TODO Auto-generated method stub + return null; + } + + + /*** + * 获取dao层 + * @return + */ + private BaseDAO getBaseDAO() { + if (this.baseDAO == null) { + this.baseDAO = new BaseDAO(); + } + return this.baseDAO; + } + + +}