This commit is contained in:
parent
747e94d84d
commit
4eda16f13f
|
|
@ -24,6 +24,7 @@ import nc.bs.mmpac.pmo.pac0002.bp.util.PMOBPCalUtil;
|
||||||
import nc.bs.mmpac.pmo.pac0002.bp.util.PMOBPUtil;
|
import nc.bs.mmpac.pmo.pac0002.bp.util.PMOBPUtil;
|
||||||
import nc.bs.mmpac.pmo.pac0002.rule.PMOATPUpdateRule;
|
import nc.bs.mmpac.pmo.pac0002.rule.PMOATPUpdateRule;
|
||||||
import nc.bs.pubapp.AppBsContext;
|
import nc.bs.pubapp.AppBsContext;
|
||||||
|
import nc.bs.uapbd.util.MyHelper;
|
||||||
import nc.impl.pubapp.pattern.data.vo.VOQuery;
|
import nc.impl.pubapp.pattern.data.vo.VOQuery;
|
||||||
import nc.impl.pubapp.pattern.data.vo.tool.VOConcurrentTool;
|
import nc.impl.pubapp.pattern.data.vo.tool.VOConcurrentTool;
|
||||||
import nc.itf.uap.IUAPQueryBS;
|
import nc.itf.uap.IUAPQueryBS;
|
||||||
|
|
@ -41,6 +42,7 @@ import nc.util.mmf.framework.db.MMSqlBuilder;
|
||||||
import nc.util.mmf.framework.db.MMTempTable;
|
import nc.util.mmf.framework.db.MMTempTable;
|
||||||
import nc.util.mmf.framework.gc.GCBillTransferTool;
|
import nc.util.mmf.framework.gc.GCBillTransferTool;
|
||||||
import nc.util.mmf.framework.gc.GCBillUpdate;
|
import nc.util.mmf.framework.gc.GCBillUpdate;
|
||||||
|
import nc.vo.bd.material.MaterialVO;
|
||||||
import nc.vo.mmpac.pickm.entity.PickmHeadVO;
|
import nc.vo.mmpac.pickm.entity.PickmHeadVO;
|
||||||
import nc.vo.mmpac.pickm.entity.PickmItemVO;
|
import nc.vo.mmpac.pickm.entity.PickmItemVO;
|
||||||
import nc.vo.mmpac.pmo.pac0002.constant.PMOConstLang;
|
import nc.vo.mmpac.pmo.pac0002.constant.PMOConstLang;
|
||||||
|
|
@ -241,6 +243,43 @@ public class PublicPMOService4WrImpl implements IPublicPMOService4Wr {
|
||||||
PMOHeadVO head = (PMOHeadVO)headMap.get(item.getCpmohid());
|
PMOHeadVO head = (PMOHeadVO)headMap.get(item.getCpmohid());
|
||||||
UFBoolean autoFlag = (UFBoolean)autodonepara.get(head.getCtrantypeid());
|
UFBoolean autoFlag = (UFBoolean)autodonepara.get(head.getCtrantypeid());
|
||||||
if (autoFlag.booleanValue()) {
|
if (autoFlag.booleanValue()) {
|
||||||
|
BaseDAO dao = new BaseDAO();
|
||||||
|
// 查询备料计划 如果下游备料计划未出库数量(计划出库-累计出库)小于0,生产订单自动完工取消 naccoutnum 累计出库数量 nplanoutnum计划出库
|
||||||
|
String pickmsql = "select cbmaterialvid,vrowno,nplanoutnum,naccoutnum from mm_pickm_b where cpickmid in ( select cpickmid from mm_pickm where csourcebillrowid='" + item.getCmoid() + "' and dr=0) and dr = 0";
|
||||||
|
List<Map<String,Object>> hmateral = (List<Map<String,Object>>) dao.executeQuery(pickmsql, new MapListProcessor());
|
||||||
|
List<String> vrownos = new ArrayList();
|
||||||
|
List<Map<String,Object>> maps = new ArrayList();
|
||||||
|
|
||||||
|
Boolean l=false;
|
||||||
|
for (Map<String,Object> map : hmateral) {
|
||||||
|
String material =MaterialVO.CODE+","+MaterialVO.NAME+","+MaterialVO.OUTTOLERANCE;
|
||||||
|
// 物料出库容差 % 0.0000
|
||||||
|
Map<String, Object> goodsMap = MyHelper.transferFields(MaterialVO.getDefaultTableName(), material, MaterialVO.PK_MATERIAL, item.getCmaterialvid());
|
||||||
|
String Outtolerance= null !=goodsMap.get("outtolerance") ? goodsMap.get("outtolerance").toString() : "0";
|
||||||
|
if(null != map.get("nplanoutnum") && null != map.get("naccoutnum") && (new UFDouble(String.valueOf(map.get("nplanoutnum").toString())).sub(new UFDouble(String.valueOf(map.get("naccoutnum").toString()))).abs()).compareTo(new UFDouble(String.valueOf(map.get("nplanoutnum").toString())).multiply(new UFDouble(String.valueOf(Outtolerance.toString())))) > 0) {
|
||||||
|
l=true;
|
||||||
|
Map<String, Object> map1 =new HashMap<>();
|
||||||
|
map1.put("vrowno",map.get("vrowno").toString());
|
||||||
|
map1.put("mrlname",goodsMap.get("name").toString());
|
||||||
|
map1.put("mrlcode",goodsMap.get("code").toString());
|
||||||
|
maps.add(map1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(l){
|
||||||
|
// String pickm = " select vbillcode,cpickmid from mm_pickm where csourcebillrowid='" + item.getCmoid() + "' and dr=0";
|
||||||
|
// List<Map<String,Object>> pickms = (List<Map<String,Object>>) dao.executeQuery(pickm, new MapListProcessor());
|
||||||
|
String err="";
|
||||||
|
for (Map<String,Object> vrowno : maps) {
|
||||||
|
String pmobillcode= head.getVbillcode();
|
||||||
|
String pmovrowno= item.getVrowno();
|
||||||
|
// String pickmbillcode= pickms.get(0).get("vbillcode").toString();
|
||||||
|
String pickmvrowno= vrowno.get("vrowno").toString();
|
||||||
|
String mrlname= vrowno.get("mrlname").toString();
|
||||||
|
String mrlcode= vrowno.get("mrlcode").toString();
|
||||||
|
err=err+"生产订单"+pmobillcode+"行"+pmovrowno+"的备料计划行"+pickmvrowno+"物料【"+mrlcode+","+mrlname+"】检查不通过\n";
|
||||||
|
}
|
||||||
|
throw new BusinessException(err);
|
||||||
|
}
|
||||||
item.setFitemstatus(Integer.valueOf(PMOFItemStatusEnum.FINISH.getEnumValue().getValue()));
|
item.setFitemstatus(Integer.valueOf(PMOFItemStatusEnum.FINISH.getEnumValue().getValue()));
|
||||||
item.setTactendtime(new UFDateTime(AppBsContext.getInstance().getBusiDate().toPersisted()));
|
item.setTactendtime(new UFDateTime(AppBsContext.getInstance().getBusiDate().toPersisted()));
|
||||||
item.setStatus(1);
|
item.setStatus(1);
|
||||||
|
|
@ -262,23 +301,50 @@ public class PublicPMOService4WrImpl implements IPublicPMOService4Wr {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (totalWRnum.doubleValue() >= compareplanputnum.doubleValue() && !MMMapUtil.isEmpty(autodonepara)) {
|
if (totalWRnum.doubleValue() >= compareplanputnum.doubleValue() && !MMMapUtil.isEmpty(autodonepara)) {
|
||||||
BaseDAO dao = new BaseDAO();
|
|
||||||
|
|
||||||
// 查询备料计划 如果下游备料计划未出库数量(计划出库-累计出库)小于0,生产订单自动完工取消 naccoutnum 累计出库数量 nplanoutnum计划出库
|
|
||||||
String pickmsql = "select nplanoutnum,naccoutnum from mm_pickm_b where cpickmid in ( select cpickmid from mm_pickm where csourcebillrowid='" + item.getCmoid() + "' and dr=0) and dr = 0";
|
|
||||||
List<Map<String,Object>> hmateral = (List<Map<String,Object>>) dao.executeQuery(pickmsql, new MapListProcessor());
|
|
||||||
Boolean l=false;
|
|
||||||
for (Map<String,Object> map : hmateral) {
|
|
||||||
if(null != map.get("nplanoutnum") && null != map.get("naccoutnum") && new UFDouble(String.valueOf(map.get("nplanoutnum"))).sub(new UFDouble(String.valueOf(map.get("naccoutnum")))).compareTo(UFDouble.ZERO_DBL) <0) {
|
|
||||||
l=true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(l){
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
PMOHeadVO head = (PMOHeadVO)headMap.get(item.getCpmohid());
|
PMOHeadVO head = (PMOHeadVO)headMap.get(item.getCpmohid());
|
||||||
UFBoolean autoFlag = (UFBoolean)autodonepara.get(head.getCtrantypeid());
|
UFBoolean autoFlag = (UFBoolean)autodonepara.get(head.getCtrantypeid());
|
||||||
if (autoFlag.booleanValue()) {
|
if (autoFlag.booleanValue()) {
|
||||||
|
BaseDAO dao = new BaseDAO();
|
||||||
|
// 查询备料计划 如果下游备料计划未出库数量(计划出库-累计出库)小于0,生产订单自动完工取消 naccoutnum 累计出库数量 nplanoutnum计划出库
|
||||||
|
String pickmsql = "select cbmaterialvid,vrowno,nplanoutnum,naccoutnum from mm_pickm_b where cpickmid in ( select cpickmid from mm_pickm where csourcebillrowid='" + item.getCmoid() + "' and dr=0) and dr = 0";
|
||||||
|
List<Map<String,Object>> hmateral = (List<Map<String,Object>>) dao.executeQuery(pickmsql, new MapListProcessor());
|
||||||
|
List<String> vrownos = new ArrayList();
|
||||||
|
List<Map<String,Object>> maps = new ArrayList();
|
||||||
|
|
||||||
|
Boolean l=false;
|
||||||
|
for (Map<String,Object> map : hmateral) {
|
||||||
|
String material =MaterialVO.CODE+","+MaterialVO.NAME+","+MaterialVO.OUTTOLERANCE;
|
||||||
|
// 物料出库容差 % 0.0000
|
||||||
|
Map<String, Object> goodsMap = MyHelper.transferFields(MaterialVO.getDefaultTableName(), material, MaterialVO.PK_MATERIAL, item.getCmaterialvid());
|
||||||
|
String Outtolerance= null !=goodsMap.get("outtolerance") ? goodsMap.get("outtolerance").toString() : "0";
|
||||||
|
if(null != map.get("nplanoutnum") && null != map.get("naccoutnum") && (new UFDouble(map.get("nplanoutnum").toString()).sub(new UFDouble(String.valueOf(map.get("naccoutnum").toString()))).abs()).compareTo(new UFDouble(String.valueOf(map.get("nplanoutnum").toString())).multiply(new UFDouble(String.valueOf(Outtolerance.toString())))) > 0) {
|
||||||
|
UFDouble num1 = new UFDouble(map.get("nplanoutnum").toString()).sub(new UFDouble(String.valueOf(map.get("naccoutnum").toString()))).abs();
|
||||||
|
|
||||||
|
l=true;
|
||||||
|
Map<String, Object> map1 =new HashMap<>();
|
||||||
|
map1.put("vrowno",map.get("vrowno").toString());
|
||||||
|
map1.put("mrlname",goodsMap.get("name").toString());
|
||||||
|
map1.put("mrlcode",goodsMap.get("code").toString());
|
||||||
|
maps.add(map1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(l){
|
||||||
|
// String pickm = " select vbillcode,cpickmid from mm_pickm where csourcebillrowid='" + item.getCmoid() + "' and dr=0";
|
||||||
|
// List<Map<String,Object>> pickms = (List<Map<String,Object>>) dao.executeQuery(pickm, new MapListProcessor());
|
||||||
|
String err="";
|
||||||
|
for (Map<String,Object> vrowno : maps) {
|
||||||
|
String pmobillcode= head.getVbillcode();
|
||||||
|
String pmovrowno= item.getVrowno();
|
||||||
|
// String pickmbillcode= pickms.get(0).get("vbillcode").toString();
|
||||||
|
String pickmvrowno= vrowno.get("vrowno").toString();
|
||||||
|
String mrlname= vrowno.get("mrlname").toString();
|
||||||
|
String mrlcode= vrowno.get("mrlcode").toString();
|
||||||
|
err=err+"生产订单"+pmobillcode+"行"+pmovrowno+"的备料计划行"+pickmvrowno+"物料【"+mrlcode+","+mrlname+"】检查不通过\n";
|
||||||
|
}
|
||||||
|
throw new BusinessException(err);
|
||||||
|
}
|
||||||
item.setFitemstatus(Integer.valueOf(PMOFItemStatusEnum.FINISH.getEnumValue().getValue()));
|
item.setFitemstatus(Integer.valueOf(PMOFItemStatusEnum.FINISH.getEnumValue().getValue()));
|
||||||
item.setTactendtime(new UFDateTime(AppBsContext.getInstance().getBusiDate().toPersisted()));
|
item.setTactendtime(new UFDateTime(AppBsContext.getInstance().getBusiDate().toPersisted()));
|
||||||
item.setStatus(1);
|
item.setStatus(1);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue