|
|
@@ -693,6 +693,7 @@ public class MESServiceImpl implements MESService {
|
|
|
String code="";
|
|
|
int tlid=0;
|
|
|
String tlcode = "";
|
|
|
+ String macode="";
|
|
|
String ma_tasktype=null;
|
|
|
int maid=0;
|
|
|
String tlpiclass = "生产退料单", tlcaller = "ProdInOut!Make!Return", bcpiclass = "拨出单", bccaller = "ProdInOut!AppropriationOut";
|
|
|
@@ -700,7 +701,7 @@ public class MESServiceImpl implements MESService {
|
|
|
int frob=99;
|
|
|
JSONArray array = data.get("detail");
|
|
|
if(array!=null&&array.size()>0){
|
|
|
- String macode = StringUtil.valueOf(JSON.parseObject(StringUtil.nvl(array.get(0), "")).get("FICMOBillNo"));
|
|
|
+ macode = StringUtil.valueOf(JSON.parseObject(StringUtil.nvl(array.get(0), "")).get("FICMOBillNo"));
|
|
|
Object[] data1 = baseDao.getFieldsDataByCondition("Make", "ma_tasktype,ma_id", "ma_code in ('" + macode + "')");
|
|
|
if (data1!=null&&data1.length>0) {
|
|
|
ma_tasktype = StringUtil.nvl(data1[0], "");
|
|
|
@@ -781,19 +782,14 @@ public class MESServiceImpl implements MESService {
|
|
|
sqls.add("insert into prodiodetail (pd_id,pd_piid,pd_inoutno,pd_piclass,pd_pdno,pd_prodcode,pd_outqty,pd_whcode,pd_whname,pd_inwhcode,pd_inwhname,pd_macode,pd_madetno) values (PRODIODETAIL_SEQ.nextval,"+id+",'"+code+"','"+bcpiclass+"',"+detno+",'"+itemNo+"',"+qty+",'"+warehouses[0]+"','"+warehouses[1]+"','"+warehouses2[0]+"','"+warehouses2[1]+"','"+ficmoBillNo+"',"+objs[2]+")");
|
|
|
if (frob==0) {
|
|
|
Object prid = baseDao.getFieldDataByCondition("Product", "pr_id", "pr_code='" + itemNo + "'");
|
|
|
- SqlRowList rs = baseDao.queryForRowSet("select nvl(mm_totaluseqty,0)+nvl(mm_havegetqty,0)-nvl(ma_tomadeqty,0)*nvl(mm_oneuseqty,0) mmqty,nvl(mm_havegetqty,0)-nvl(ma_tomadeqty,0)*nvl(mm_oneuseqty,0) useqty,mm_totaluseqty from MakeMaterial left join Make on ma_id=mm_maid where mm_id=" + objs[0]);
|
|
|
- Double mmqty=0.0;
|
|
|
- if (rs.next()){
|
|
|
- //最多可退数量
|
|
|
- mmqty = rs.getDouble("mmqty");
|
|
|
- //未使用数量
|
|
|
- Double useqty = rs.getDouble("useqty");
|
|
|
- //已转领料数
|
|
|
- Double mmTotaluseqty = rs.getDouble("mm_totaluseqty");
|
|
|
- }
|
|
|
- qty = qty.compareTo(mmqty) > 0 ? mmqty : qty;
|
|
|
- sqls.add("INSERT INTO ProdIODetail(pd_id, pd_piid, pd_inoutno, pd_piclass, pd_pdno, pd_status,pd_auditstatuscode,pd_auditstatus,pd_prodcode,pd_ordercode, pd_orderdetno,pd_macode,pd_madetno,pd_plancode, pd_wccode, pd_orderid, pd_prodid,pd_whcode,pd_whname,pd_inqty,pd_description) VALUES (PRODIODETAIL_SEQ.nextval,"+tlid+",'"+tlcode+"','"+tlpiclass+"',"+det+ ",0,'ENTERING','在录入','"+itemNo+"','"+ficmoBillNo+"',"+objs[2]+",'"+ficmoBillNo+"',"+objs[2]+ ",'"+objs[3]+"','"+objs[5]+"',"+lineId+","+prid+",'"+warehouses[0]+"','"+warehouses[1]+"',"+qty+ ",'良品退仓')");
|
|
|
- det++;
|
|
|
+ Double remain = baseDao.getSummaryByField("batch", "ba_remain", "ba_prodcode='" + itemNo + "' and ba_macode='" + macode + "' and ba_whcode='" + warehouses[0] + "'");
|
|
|
+ /*Object[] data1 = baseDao.getFieldsDataByCondition("MakeMaterial left join Make on ma_id=mm_maid",
|
|
|
+ "mm_totaluseqty,mm_havegetqty,ma_tomadeqty,mm_oneuseqty,ma_qty", "mm_id=" + objs[0]);*/
|
|
|
+ if (qty.compareTo(remain) > 0){
|
|
|
+ double sub = DoubleUtils.sub(qty, remain);
|
|
|
+ sqls.add("INSERT INTO ProdIODetail(pd_id, pd_piid, pd_inoutno, pd_piclass, pd_pdno, pd_status,pd_auditstatuscode,pd_auditstatus,pd_prodcode,pd_ordercode, pd_orderdetno,pd_macode,pd_madetno,pd_plancode, pd_wccode, pd_orderid, pd_prodid,pd_whcode,pd_whname,pd_inqty,pd_description) VALUES (PRODIODETAIL_SEQ.nextval,"+tlid+",'"+tlcode+"','"+tlpiclass+"',"+det+ ",0,'ENTERING','在录入','"+itemNo+"','"+ficmoBillNo+"',"+objs[2]+",'"+ficmoBillNo+"',"+objs[2]+ ",'"+objs[3]+"','"+objs[5]+"',"+lineId+","+prid+",'"+warehouses[0]+"','"+warehouses[1]+"',"+sub+ ",'良品退仓')");
|
|
|
+ det++;
|
|
|
+ }
|
|
|
}
|
|
|
detno++;
|
|
|
}
|