检验单审批回写质检信息

This commit is contained in:
hefengkai 2024-10-19 18:37:26 +08:00
parent 5fef2acf0c
commit 795f083d9c
1 changed files with 0 additions and 172 deletions

View File

@ -1,172 +0,0 @@
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<String, String> createDhjyd_RequiresNew(ArriveVO arriveVO) throws BusinessException {
try {
ArriveHeaderVO arriveHeadVo = arriveVO.getHVO();//获取到货单表头信息
ArriveItemVO[] arriveItems = arriveVO.getBVO();//获取到货单表体信息
//到货单集合获取
ArrayList<ArriveVO> arrayList = new ArrayList<ArriveVO>();
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<String, String> writeBackQc(AggDhjydMasterVO aggDhjydMasterVO) throws BusinessException {
try {
DhjydMasterVO dhjydMaster = aggDhjydMasterVO.getParentVO();//获取检验单表头信息
DhjydSlave0VO[] dhjydItems = (DhjydSlave0VO[])aggDhjydMasterVO.getChildrenVO();//获取到货单表体信息
ArriveBbVO arriveBb = null;//到货单质检明细
ArrayList<ArriveBbVO> vos = new ArrayList<ArriveBbVO>();
//存在一个检验单有多个表体的情况(合格不合格回用)
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<String, String> 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;
}
}