koul 4 роки тому
батько
коміт
f431499ee2
1 змінених файлів з 21 додано та 19 видалено
  1. 21 19
      src/main/java/com/uas/eis/service/Impl/MESServiceImpl.java

+ 21 - 19
src/main/java/com/uas/eis/service/Impl/MESServiceImpl.java

@@ -477,11 +477,23 @@ public class MESServiceImpl implements MESService {
         int bcpiid = 0;
         String llcode = null;
         int llpiid=0;
-        String macode=null;
+        String ma_tasktype=null;
+        int maid=0;
         String llpiclass = "生产领料单", llcaller = "ProdInOut!Picking", bcpiclass = "拨出单", bccaller = "ProdInOut!AppropriationOut";
         // 是否生成调拨单,勾选不生成,不勾选默认生成
         Boolean notCreateAppropriation = baseDao.isDBSetting("MultiMakeSendLS", "notCreateAppropriation");
         List<String> sqls = new ArrayList<>();
+        JSONArray array = data.get("detail");
+        if(array!=null&&array.size()>0){
+            String 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], "");
+                maid = Integer.parseInt(StringUtil.nvl(data1[1], "0"));
+            }else {
+                return ApiResponse.failRsp("10046", request.getHeader("RequestId"), "工单在ERP不存在,请核对!");
+            }
+        }
         for (int i = 0; i <jsonArray.size() ; i++) {
             JSONObject jsonObject2 = JSON.parseObject(StringUtil.nvl(jsonArray.get(i), ""));
             Map<Object, Object> map1 = JSONUtil.toMap(StringUtil.valueOf(jsonObject2.get("FDeptID")));
@@ -489,8 +501,6 @@ public class MESServiceImpl implements MESService {
             Map<Object, Object> map3 = JSONUtil.toMap(StringUtil.valueOf(jsonObject2.get("FFManagerID")));
             Map<Object, Object> map4 = JSONUtil.toMap(StringUtil.valueOf(jsonObject2.get("FSManagerID")));
             Map<Object, Object> map5 = JSONUtil.toMap(StringUtil.valueOf(jsonObject2.get("FBillerID")));
-            macode = StringUtil.valueOf(jsonObject2.get("FHeadSelfB0437"));
-            Object ma_tasktype = baseDao.getFieldDataByCondition("Make", "ma_tasktype", "ma_code in ('" + macode + "')");
             if ("OS".equals(ma_tasktype)) {
                 llpiclass = "委外领料单";
                 llcaller = "ProdInOut!OutsidePicking";
@@ -505,7 +515,7 @@ public class MESServiceImpl implements MESService {
                         "values ("+bcpiid+",'"+bccode+"','"+bcpiclass+"',to_date('"+jsonObject2.get("Fdate")+"','yyyy-MM-dd " +
                         "HH24:mi:ss'),'UNPOST','未过账','"+map1.get("FNumber")+"','"+map1.get("FName")+"','"+map4.get("FNumber")+"','"+map4.get("FName")+"','ENTERING','在录入','"+map5.get("FName")+"',to_date('"+jsonObject2.get("Fdate")+"','yyyy-MM-dd HH24:mi:ss'),'UNPRINT','未打印','库存转移')");
             }
-            //生成生产领料单
+            //生成领料单
             llpiid = baseDao.getSeqId("PRODINOUT_SEQ");
             llcode = baseDao.sGetMaxNumber(llcaller, 2);
             sqls.add("insert into prodinout (pi_id,pi_inoutno,pi_class,pi_date,pi_statuscode,pi_status," +
@@ -515,21 +525,12 @@ public class MESServiceImpl implements MESService {
                     "HH24:mi:ss'),'UNPOST','未过账','"+map1.get("FNumber")+"','"+map1.get("FName")+"','"+map4.get(
                             "FNumber")+"','"+map4.get("FName")+"','ENTERING','在录入','"+map5.get("FName")+"',to_date('"+jsonObject2.get("Fdate")+"','yyyy-MM-dd HH24:mi:ss'),'UNPRINT','未打印','"+map2.get("FName")+"')");
             // 标示领料单的拨出单号
-            baseDao.execute("update ProdInOut set pi_fromcode='" + bccode + "' where pi_id=" + llpiid);
+            sqls.add("update ProdInOut set pi_fromcode='" + bccode + "' where pi_id=" + llpiid);
         }
-        /*Object mmwhcode = baseDao.getFieldDataByCondition("MakeMaterial", "min(mm_whcode)", " nvl(mm_whcode,' ')<>' '" + " and mm_code in ('" + macode + "')");
-        Object mmwhname="";
-        if (mmwhcode!=null&&!"".equals(mmwhcode.toString())){
-            mmwhname = baseDao.getFieldDataByCondition("warehouse", "min(wh_description)",
-                    "wh_code in ('" + mmwhcode + "'");
-        }*/
-
-        JSONArray array = data.get("detail");
         Object[] warehouses=null;
         Object[] warehouses2=null;
         int detno=1;
         int det=1;
-        int maid=0;
         for (int i = 0; i <array.size(); i++) {
             JSONObject object = JSON.parseObject(StringUtil.nvl(array.get(i), "{}"));
             Map<Object, Object> map = JSONUtil.toMap(StringUtil.valueOf(object.get("FItemID")));
@@ -544,7 +545,6 @@ public class MESServiceImpl implements MESService {
             Double qty = Double.parseDouble(fAuxQty);
             Map<Object, Object> map1 = JSONUtil.toMap(StringUtil.valueOf(object.get("FSCStockID1")));
             String whcode = StringUtil.nvl(map1.get("FNumber"), "");
-            String whname = StringUtil.nvl(map1.get("FName"), "");
             if ("".equals(whcode)){
                 return ApiResponse.failRsp("10043",request.getHeader("RequestId"),"发料仓库不能为空!");
             }
@@ -557,7 +557,6 @@ public class MESServiceImpl implements MESService {
             String ficmoBillNo = StringUtil.nvl(object.get("FICMOBillNo"), "");
             Map<Object, Object> map2 = JSONUtil.toMap(StringUtil.nvl(object.get("FSCStockID2"), "{}"));
             String whcode2 = StringUtil.nvl(map2.get("FNumber"), "");
-            String whname2 = StringUtil.nvl(map2.get("FName"), "");
             if ("".equals(whcode2)){
                 return ApiResponse.failRsp("10043",request.getHeader("RequestId"),"物料所在仓库不能为空!");
             }
@@ -612,6 +611,9 @@ public class MESServiceImpl implements MESService {
                 det++;
             }
         }
+        if ("OS".equals(ma_tasktype)) {
+            sqls.add("update prodinout set(pi_cardcode,pi_title,pi_receivecode,pi_receivename) = (select max(ma_vendcode),max(ma_vendname),max(nvl(ma_apvendcode,ma_vendcode)),max(nvl(ma_apvendname,ma_vendname)) from make where ma_id in (" + maid + ")) where pi_id=" + llpiid);
+        }
         if (warehouses2!=null){
             sqls.add("update prodinout set pi_whcode='"+warehouses2[0]+"',pi_whname='"+warehouses2[1]+"' where " + "pi_id="+bcpiid);
         }
@@ -630,17 +632,17 @@ public class MESServiceImpl implements MESService {
         String s = postProdInOut(bcpiid, bccaller, employee);
         logger.info("S=="+s);
         if (s!=null){
-            return ApiResponse.successRsp("0",request.getHeader("RequestId"),"拨出单:"+bccode+",过账失败,请在ERP重新过账!");
+            return ApiResponse.successRsp("0",request.getHeader("RequestId"),bcpiclass+":"+bccode+",过账失败,请在ERP重新过账!");
         }else {
             if (count>0) {
                 String s1 = postProdInOut(llpiid, llcaller, employee);
                 logger.info("S1==" + s1);
                 if (s1 != null) {
-                    return ApiResponse.successRsp("0", request.getHeader("RequestId"), "生产领料单:" + llcode + ",过账失败,请在ERP重新过账!");
+                    return ApiResponse.successRsp("0", request.getHeader("RequestId"), llpiclass+":" + llcode + ",过账失败,请在ERP重新过账!");
                 }
             }
         }
-        return ApiResponse.successRsp("0",request.getHeader("RequestId"),"生产领料单:"+llcode+",拨出单:"+bccode+",请在ERP查看!");
+        return ApiResponse.successRsp("0",request.getHeader("RequestId"),llpiclass+":"+llcode+","+bcpiclass+":"+bccode+ ",请在ERP查看!");
     }
 
     @Override