到货单子表累计检验数量、合格数量、不合格数量回写和收回逻辑
This commit is contained in:
parent
78cf765d19
commit
0a78053868
|
@ -6,12 +6,19 @@ import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import nc.bs.dao.BaseDAO;
|
import nc.bs.dao.BaseDAO;
|
||||||
import nc.bs.framework.common.InvocationInfoProxy;
|
import nc.bs.framework.common.InvocationInfoProxy;
|
||||||
import nc.bs.framework.common.NCLocator;
|
import nc.bs.framework.common.NCLocator;
|
||||||
|
import nc.bs.pu.pub.PUIDQueryBuilder;
|
||||||
import nc.bs.pub.pf.PfUtilTools;
|
import nc.bs.pub.pf.PfUtilTools;
|
||||||
import nc.bs.trade.business.HYPubBO;
|
import nc.bs.trade.business.HYPubBO;
|
||||||
import nc.codeplatform.framework.service.ServiceSupport;
|
import nc.codeplatform.framework.service.ServiceSupport;
|
||||||
|
import nc.impl.pubapp.pattern.data.vo.VODelete;
|
||||||
|
import nc.impl.pubapp.pattern.data.vo.VOQuery;
|
||||||
|
import nc.impl.pubapp.pattern.data.vo.VOUpdate;
|
||||||
|
import nc.impl.pubapp.pattern.rule.IRule;
|
||||||
import nc.itf.pu.dhjyd.dhjydmaster.IArriveToDhjyd;
|
import nc.itf.pu.dhjyd.dhjydmaster.IArriveToDhjyd;
|
||||||
import nc.itf.pu.dhjyd.dhjydmaster.IDhjydMasterVOService;
|
import nc.itf.pu.dhjyd.dhjydmaster.IDhjydMasterVOService;
|
||||||
import nc.jdbc.framework.processor.MapListProcessor;
|
import nc.jdbc.framework.processor.MapListProcessor;
|
||||||
|
@ -24,9 +31,12 @@ import nc.vo.pu.m23.entity.ArriveHeaderVO;
|
||||||
import nc.vo.pu.m23.entity.ArriveItemVO;
|
import nc.vo.pu.m23.entity.ArriveItemVO;
|
||||||
import nc.vo.pu.m23.entity.ArriveVO;
|
import nc.vo.pu.m23.entity.ArriveVO;
|
||||||
import nc.vo.pub.BusinessException;
|
import nc.vo.pub.BusinessException;
|
||||||
|
import nc.vo.pub.ISuperVO;
|
||||||
import nc.vo.pub.lang.UFBoolean;
|
import nc.vo.pub.lang.UFBoolean;
|
||||||
import nc.vo.pub.lang.UFDate;
|
import nc.vo.pub.lang.UFDate;
|
||||||
import nc.vo.pub.lang.UFDouble;
|
import nc.vo.pub.lang.UFDouble;
|
||||||
|
import nc.vo.pubapp.pattern.exception.ExceptionUtils;
|
||||||
|
import nc.vo.pubapp.pattern.pub.MathTool;
|
||||||
|
|
||||||
|
|
||||||
public class ArriveToDhjydImpl extends ServiceSupport implements IArriveToDhjyd {
|
public class ArriveToDhjydImpl extends ServiceSupport implements IArriveToDhjyd {
|
||||||
|
@ -112,9 +122,13 @@ public class ArriveToDhjydImpl extends ServiceSupport implements IArriveToDhjyd
|
||||||
if (!"DHJY-Cxx-01".equals(transtype)) {//非到货检验单情况处理结束
|
if (!"DHJY-Cxx-01".equals(transtype)) {//非到货检验单情况处理结束
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
ArriveBbVO arriveBb = null;//到货单质检明细
|
ArriveBbVO arriveBb = null;//到货单质检明细
|
||||||
ArrayList<ArriveBbVO> vos = new ArrayList<ArriveBbVO>();
|
ArrayList<ArriveBbVO> vos = new ArrayList<ArriveBbVO>();
|
||||||
|
UFDouble nchecknum = UFDouble.ZERO_DBL;//本次检验数量
|
||||||
|
UFDouble nwillelignum = UFDouble.ZERO_DBL;//本次检验合格数量
|
||||||
|
UFDouble nwillnotelignum = UFDouble.ZERO_DBL;//本次检验不合格数量
|
||||||
|
|
||||||
//存在一个检验单有多个表体的情况(合格、不合格、回用)
|
//存在一个检验单有多个表体的情况(合格、不合格、回用)
|
||||||
if(dhjydItems != null && dhjydItems.length > 0) {
|
if(dhjydItems != null && dhjydItems.length > 0) {
|
||||||
for(int i = 0; i < dhjydItems.length; i++) {
|
for(int i = 0; i < dhjydItems.length; i++) {
|
||||||
|
@ -122,7 +136,7 @@ public class ArriveToDhjydImpl extends ServiceSupport implements IArriveToDhjyd
|
||||||
arriveBb.setPk_group(dhjydMaster.getPk_group());//所属集团id
|
arriveBb.setPk_group(dhjydMaster.getPk_group());//所属集团id
|
||||||
arriveBb.setPk_arriveorder(dhjydMaster.getSrcbillid());//到货单主键id
|
arriveBb.setPk_arriveorder(dhjydMaster.getSrcbillid());//到货单主键id
|
||||||
arriveBb.setPk_arriveorder_b(dhjydMaster.getDef1());//到货单表体主键id
|
arriveBb.setPk_arriveorder_b(dhjydMaster.getDef1());//到货单表体主键id
|
||||||
UFDouble nnum = dhjydItems[i].getQualifiednum();
|
UFDouble nnum = dhjydItems[i].getQualifiednum();//子表合格数量--->模板调整--->数量
|
||||||
arriveBb.setNnum(nnum==null?UFDouble.ZERO_DBL:nnum);//主数量
|
arriveBb.setNnum(nnum==null?UFDouble.ZERO_DBL:nnum);//主数量
|
||||||
arriveBb.setNastnum(nnum==null?UFDouble.ZERO_DBL:nnum);//辅数量
|
arriveBb.setNastnum(nnum==null?UFDouble.ZERO_DBL:nnum);//辅数量
|
||||||
arriveBb.setStatus(2);//新增(0:初始 1:更新 2:新增 3:删除)
|
arriveBb.setStatus(2);//新增(0:初始 1:更新 2:新增 3:删除)
|
||||||
|
@ -138,8 +152,10 @@ public class ArriveToDhjydImpl extends ServiceSupport implements IArriveToDhjyd
|
||||||
String def1Code = headMap==null?"":headMap.getOrDefault("code", "");
|
String def1Code = headMap==null?"":headMap.getOrDefault("code", "");
|
||||||
if ("01".equals(def1Code) || "02".equals(def1Code)) {
|
if ("01".equals(def1Code) || "02".equals(def1Code)) {
|
||||||
arriveBb.setBeligible(UFBoolean.valueOf(true));//合格
|
arriveBb.setBeligible(UFBoolean.valueOf(true));//合格
|
||||||
|
nwillelignum = nwillelignum.add(nnum==null?UFDouble.ZERO_DBL:nnum);//合格数量获取
|
||||||
} else if("03".equals(def1Code)) {
|
} else if("03".equals(def1Code)) {
|
||||||
arriveBb.setBeligible(UFBoolean.valueOf(false));//不合格
|
arriveBb.setBeligible(UFBoolean.valueOf(false));//不合格
|
||||||
|
nwillnotelignum = nwillnotelignum.add(nnum==null?UFDouble.ZERO_DBL:nnum);//不合格数量获取
|
||||||
}
|
}
|
||||||
|
|
||||||
//批次主键查询
|
//批次主键查询
|
||||||
|
@ -149,6 +165,8 @@ public class ArriveToDhjydImpl extends ServiceSupport implements IArriveToDhjyd
|
||||||
arriveBb.setPk_inbatchcode(pk_batchcode==null?"":pk_batchcode.toString());//入库批次号主键
|
arriveBb.setPk_inbatchcode(pk_batchcode==null?"":pk_batchcode.toString());//入库批次号主键
|
||||||
arriveBb.setVinbatchcode(vbatchcode);//入库批次号编码
|
arriveBb.setVinbatchcode(vbatchcode);//入库批次号编码
|
||||||
|
|
||||||
|
nchecknum = dhjydItems[i].getNchecknum();//本次检验数量
|
||||||
|
|
||||||
vos.add(arriveBb);
|
vos.add(arriveBb);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -156,6 +174,18 @@ public class ArriveToDhjydImpl extends ServiceSupport implements IArriveToDhjyd
|
||||||
}
|
}
|
||||||
|
|
||||||
dao.save(vos.toArray(new ArriveBbVO[0]), true);//批量生成质检明细信息
|
dao.save(vos.toArray(new ArriveBbVO[0]), true);//批量生成质检明细信息
|
||||||
|
|
||||||
|
//回写到货单子表累计合格数量、累计不合格数量等
|
||||||
|
if(StringUtils.isNotEmpty(dhjydMaster.getDef1())) {
|
||||||
|
VOQuery<ArriveItemVO> vq = new VOQuery<ArriveItemVO>(ArriveItemVO.class);
|
||||||
|
ArriveItemVO[] items = (ArriveItemVO[])vq.query(new String[] {dhjydMaster.getDef1()});
|
||||||
|
if(items != null && items.length > 0) {
|
||||||
|
items[0].setNchecknum(nchecknum);//本次检验数量
|
||||||
|
items[0].setNwillelignum(nwillelignum);//本次检验合格数量
|
||||||
|
items[0].setNwillnotelignum(nwillnotelignum);//本次检验不合格数量
|
||||||
|
}
|
||||||
|
updateBTableEligNum(items);//检验数、合格数等回写到货单
|
||||||
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
String errMsg = e.toString();
|
String errMsg = e.toString();
|
||||||
if (e.getCause() != null) {
|
if (e.getCause() != null) {
|
||||||
|
@ -188,6 +218,13 @@ public class ArriveToDhjydImpl extends ServiceSupport implements IArriveToDhjyd
|
||||||
|
|
||||||
ArriveBbVO[] vos = dao.listByCondition(ArriveBbVO.class, whereSql);//质检信息查询
|
ArriveBbVO[] vos = dao.listByCondition(ArriveBbVO.class, whereSql);//质检信息查询
|
||||||
dao.delete(vos, true);//删除质量信息
|
dao.delete(vos, true);//删除质量信息
|
||||||
|
|
||||||
|
//收回到货单子表累计合格数量、累计不合格数量等
|
||||||
|
if(StringUtils.isNotEmpty(dhjydMaster.getDef1())) {
|
||||||
|
VOQuery<ArriveItemVO> vq = new VOQuery<ArriveItemVO>(ArriveItemVO.class);
|
||||||
|
ArriveItemVO[] items = (ArriveItemVO[])vq.query(new String[] {dhjydMaster.getDef1()});
|
||||||
|
retrieveArrive(items);//检验数、合格数等归零
|
||||||
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
String errMsg = e.toString();
|
String errMsg = e.toString();
|
||||||
if (e.getCause() != null) {
|
if (e.getCause() != null) {
|
||||||
|
@ -225,6 +262,58 @@ public class ArriveToDhjydImpl extends ServiceSupport implements IArriveToDhjyd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***
|
||||||
|
* 到货检验单审批通过回写到货单累计数量
|
||||||
|
* @param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private void updateBTableEligNum(ArriveItemVO[] bvos) {
|
||||||
|
|
||||||
|
if(bvos == null || bvos.length == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ArriveItemVO> volists = new ArrayList<ArriveItemVO>();
|
||||||
|
for (int j = 0; j < bvos.length; j++) {
|
||||||
|
bvos[j].setNaccumchecknum(MathTool.add(bvos[j].getNaccumchecknum(), bvos[j].getNchecknum()));
|
||||||
|
bvos[j].setNelignum(MathTool.add(bvos[j].getNelignum(), bvos[j].getNwillelignum()));
|
||||||
|
bvos[j].setNnotelignum(MathTool.add(bvos[j].getNnotelignum(), bvos[j].getNwillnotelignum()));
|
||||||
|
volists.add(bvos[j]);
|
||||||
|
}
|
||||||
|
|
||||||
|
VOUpdate<ArriveItemVO> util = new VOUpdate<ArriveItemVO>();
|
||||||
|
util.update((ArriveItemVO[])volists.toArray(new ArriveItemVO[volists.size()]), new String[] { "naccumchecknum", "nelignum", "nnotelignum" });
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***
|
||||||
|
* 到货检验单收回时回写到货单
|
||||||
|
* @param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private void retrieveArrive(ArriveItemVO[] bills) {
|
||||||
|
if (bills == null || bills.length == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
List<ArriveItemVO> list = new ArrayList<ArriveItemVO>();
|
||||||
|
for (ArriveItemVO bvo : bills) {
|
||||||
|
bvo.setNnotelignum(UFDouble.ZERO_DBL);
|
||||||
|
bvo.setNelignum(UFDouble.ZERO_DBL);
|
||||||
|
bvo.setNaccumchecknum(UFDouble.ZERO_DBL);
|
||||||
|
list.add(bvo);
|
||||||
|
}
|
||||||
|
|
||||||
|
ArriveItemVO[] vos = (ArriveItemVO[]) list.toArray(new ArriveItemVO[0]);
|
||||||
|
VOUpdate<ArriveItemVO> update = new VOUpdate<ArriveItemVO>();
|
||||||
|
update.update(vos, new String[] { "naccumchecknum", "nelignum", "nnotelignum" });
|
||||||
|
} catch (Exception ex) {
|
||||||
|
ExceptionUtils.wrappException(ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* 获取dao层
|
* 获取dao层
|
||||||
* @return
|
* @return
|
||||||
|
@ -235,6 +324,5 @@ public class ArriveToDhjydImpl extends ServiceSupport implements IArriveToDhjyd
|
||||||
}
|
}
|
||||||
return this.baseDAO;
|
return this.baseDAO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue