瀏覽代碼

生产补料单MES对接及确认

koul 1 年之前
父節點
當前提交
9e48df31bb

+ 1 - 4
src/main/java/com/uas/eis/controller/ERPController.java

@@ -76,7 +76,7 @@ public class ERPController {
      * @return
      */
     @RequestMapping("/erp/syncProdInOutMakeGive")
-    public ApiResult<String> syncProdInOutMakeGive(String data){
+    public Map<String, Object> syncProdInOutMakeGive(String data){
         return erpService.syncProdInOutMakeGive(data);
     }
 
@@ -119,7 +119,4 @@ public class ERPController {
     public Map<String, Object> syncSendNotify(String data){
         return erpService.syncSendNotify(data);
     }
-
-
-
 }

+ 10 - 0
src/main/java/com/uas/eis/controller/MESController.java

@@ -207,4 +207,14 @@ public class MESController {
     public ApiResult<String> confirmSendNotify(HttpServletRequest request){
         return mesService.confirmSendNotify(request);
     }
+
+    /**
+     * 生产报废单确认
+     * @param
+     * @return
+     */
+    @RequestMapping("/mes/confirmProdInOutMakeGive")
+    public ApiResult<String> confirmProdInOutMakeGive(HttpServletRequest request){
+        return mesService.confirmProdInOutMakeGive(request);
+    }
 }

+ 62 - 2
src/main/java/com/uas/eis/entity/ProdInOutMakeGive.java

@@ -17,9 +17,21 @@ public class ProdInOutMakeGive {
     private String mesPwd;
     @JSONField(name = "prodNo")
     private String maCodes;
-    @JSONField(name = "feedNo")
+    @JSONField(name = "feedingNo")
     private String pi_inoutno;
-    @JSONField(name = "detail")
+    @JSONField(name="erpId")
+    private Integer pi_id;
+    @JSONField(name = "whNo")
+    private String pi_whcode;
+    @JSONField(name = "deptName")
+    private String pi_departmentname;
+    @JSONField(name = "user")
+    private String pi_recordman;
+    @JSONField(name = "reason")
+    private String pi_remark;
+    @JSONField(name="actionId")
+    private Integer flag;
+    @JSONField(name = "detailList")
     private List<ProdInOutMakeGiveDetail> detail;
 
     public String getMesUser() {
@@ -54,6 +66,54 @@ public class ProdInOutMakeGive {
         this.pi_inoutno = pi_inoutno;
     }
 
+    public Integer getPi_id() {
+        return pi_id;
+    }
+
+    public void setPi_id(Integer pi_id) {
+        this.pi_id = pi_id;
+    }
+
+    public String getPi_whcode() {
+        return pi_whcode;
+    }
+
+    public void setPi_whcode(String pi_whcode) {
+        this.pi_whcode = pi_whcode;
+    }
+
+    public String getPi_departmentname() {
+        return pi_departmentname;
+    }
+
+    public void setPi_departmentname(String pi_departmentname) {
+        this.pi_departmentname = pi_departmentname;
+    }
+
+    public String getPi_recordman() {
+        return pi_recordman;
+    }
+
+    public void setPi_recordman(String pi_recordman) {
+        this.pi_recordman = pi_recordman;
+    }
+
+    public String getPi_remark() {
+        return pi_remark;
+    }
+
+    public void setPi_remark(String pi_remark) {
+        this.pi_remark = pi_remark;
+    }
+
+    public Integer getFlag() {
+        return flag;
+    }
+
+    public void setFlag(Integer flag) {
+        this.flag = flag;
+    }
+
     public List<ProdInOutMakeGiveDetail> getDetail() {
         return detail;
     }

+ 12 - 97
src/main/java/com/uas/eis/entity/ProdInOutMakeGiveDetail.java

@@ -8,17 +8,6 @@ import com.alibaba.fastjson.annotation.JSONField;
  * @date 2022-04-18 10:01
  */
 public class ProdInOutMakeGiveDetail {
-
-    /**
-     *	工令单号	String
-     */
-    @JSONField(name = "prodNo")
-    private String pd_ordercode;
-    /**
-     *	工令BOMID
-     */
-    @JSONField(name = "bomId")
-    private Integer mm_id;
     /**
      *	物料编号	String
      */
@@ -29,52 +18,10 @@ public class ProdInOutMakeGiveDetail {
      */
     @JSONField(name = "qty")
     private Float pd_outqty;
-    /**
-     *	公司编号,默认BYT	String
-     */
-    @JSONField(name = "companyNo")
-    private String pi_cop;
-    /**
-     *	新建人	String
-     */
-    @JSONField(name = "createdUser")
-    private String pi_recordman;
-    /**
-     *	新建时间,格式:2021-12-03 10:44:23 	String
-     */
-    @JSONField(name = "createdDateTime")
-    private String pi_recorddate;
-    /**
-     *	修改用户 	String
-     */
-    @JSONField(name = "modifiedUser")
-    private String pi_updateman;
-    /**
-     * 修改时间,格式:2021-12-03 10:44:23 	String
-     */
-    @JSONField(name = "modifiedDateTime")
-    private String pi_updatedate;
-    /**
-     * 标记,0:新增 1:修改 2:删除	Integer
-     */
-    @JSONField(name = "flag")
-    private Integer flag;
-
-    public String getPd_ordercode() {
-        return pd_ordercode;
-    }
-
-    public void setPd_ordercode(String pd_ordercode) {
-        this.pd_ordercode = pd_ordercode;
-    }
-
-    public Integer getMm_id() {
-        return mm_id;
-    }
-
-    public void setMm_id(Integer mm_id) {
-        this.mm_id = mm_id;
-    }
+    @JSONField(name = "erpId")
+    private Integer pd_id;
+    @JSONField(name = "prodId")
+    private Integer pd_orderdetno;
 
     public String getPd_prodcode() {
         return pd_prodcode;
@@ -92,51 +39,19 @@ public class ProdInOutMakeGiveDetail {
         this.pd_outqty = pd_outqty;
     }
 
-    public String getPi_cop() {
-        return pi_cop;
-    }
-
-    public void setPi_cop(String pi_cop) {
-        this.pi_cop = pi_cop;
-    }
-
-    public String getPi_recordman() {
-        return pi_recordman;
-    }
-
-    public void setPi_recordman(String pi_recordman) {
-        this.pi_recordman = pi_recordman;
-    }
-
-    public String getPi_recorddate() {
-        return pi_recorddate;
-    }
-
-    public void setPi_recorddate(String pi_recorddate) {
-        this.pi_recorddate = pi_recorddate;
-    }
-
-    public String getPi_updateman() {
-        return pi_updateman;
-    }
-
-    public void setPi_updateman(String pi_updateman) {
-        this.pi_updateman = pi_updateman;
-    }
-
-    public String getPi_updatedate() {
-        return pi_updatedate;
+    public Integer getPd_id() {
+        return pd_id;
     }
 
-    public void setPi_updatedate(String pi_updatedate) {
-        this.pi_updatedate = pi_updatedate;
+    public void setPd_id(Integer pd_id) {
+        this.pd_id = pd_id;
     }
 
-    public Integer getFlag() {
-        return flag;
+    public Integer getPd_orderdetno() {
+        return pd_orderdetno;
     }
 
-    public void setFlag(Integer flag) {
-        this.flag = flag;
+    public void setPd_orderdetno(Integer pd_orderdetno) {
+        this.pd_orderdetno = pd_orderdetno;
     }
 }

+ 1 - 1
src/main/java/com/uas/eis/service/ERPService.java

@@ -23,7 +23,7 @@ public interface ERPService {
 
     Map<String, Object> syncDeleteMake(String data);
 
-    ApiResult<String> syncProdInOutMakeGive(String data);
+    Map<String, Object> syncProdInOutMakeGive(String data);
 
     /**
      * 更新BOM明细前限制

+ 25 - 11
src/main/java/com/uas/eis/service/Impl/ERPServiceImpl.java

@@ -154,25 +154,39 @@ public class ERPServiceImpl implements ERPService {
     }
 
     @Override
-    public ApiResult<String> syncProdInOutMakeGive(String data) {
+    public Map<String, Object> syncProdInOutMakeGive(String data) {
+        Map<String, Object> hashMap = new HashMap<>();
         try {
             Map<Object, Object> store = BaseUtil.parseFormStoreToMap(data);
             String mesUser = tokenConfig.get("mesUser");
             String mesPwd = MD5Util.encodeByMD5(tokenConfig.get("mesPwd"));
             int flag = Integer.parseInt(StringUtil.nvl(store.get("flag"), "-1"));
-            ProdInOutMakeGive prodInOutMakeGive = baseDao.getJdbcTemplate().queryForObject("select '"+mesUser+"' mesUser,'"+mesPwd+"' mesPwd,(select wm_concat(distinct pd_ordercode) from prodiodetail where pd_piid=pi_id) maCodes,pi_inoutno from prodinout where pi_id=?",
-                    new BeanPropertyRowMapper<ProdInOutMakeGive>(ProdInOutMakeGive.class), store.get("pi_id"));
-
-            List<ProdInOutMakeGiveDetail> prodInOutMakeGiveDetails = baseDao.query("select pd_ordercode,mm_id,pd_prodcode,pd_outqty," +
-                    "'BYT' pi_cop,pi_recordman,to_char(pi_recorddate,'yyyy-MM-dd HH24:mi:ss') pi_recorddate,pi_updateman," +
-                    "case when pi_updatedate is not null then to_char(pi_updatedate,'yyyy-MM-dd HH24:mi:ss') else null end pi_updatedate,"+flag+" flag " +
-                    "from prodiodetail left join prodinout on pd_piid=pi_id left join product on pd_prodcode=pr_code left join customer on cu_shortname=pr_kh_user left join MakeMaterial on pd_ordercode=mm_code and pd_orderdetno=mm_detno where nvl(pd_outqty,0)>nvl((select sum(ba_remain) from batch where nvl(ba_macode,' ')=pd_ordercode and pd_prodcode=ba_prodcode and ba_whcode in (select wh_code from Warehouse where wh_statuscode='AUDITED' and wh_description like '%线边仓%') and nvl(ba_remain,0)>0),0) and pi_id=" + store.get("pi_id"), ProdInOutMakeGiveDetail.class);
-            prodInOutMakeGive.setDetail(prodInOutMakeGiveDetails);
-            return syncMES(JSON.toJSONString(prodInOutMakeGive, SerializerFeature.WriteMapNullValue).replace("null","\"\""),tokenConfig.get("syncProdInOutMakeGive"));
+            int piId = Integer.parseInt(StringUtil.nvl(store.get("pi_id"), "0"));
+            int count = baseDao.getCount("select count(1) from prodinout where pi_id="+piId);
+            if (count>0) {
+                ProdInOutMakeGive prodInOutMakeGive = baseDao.getJdbcTemplate().queryForObject("select '" + mesUser + "' mesUser,'" + mesPwd + "' mesPwd,(select wm_concat(distinct pd_ordercode) from prodiodetail where pd_piid=pi_id) prodNo,pi_inoutno,pi_id,(select wm_concat(distinct cd_varchar50_1) from customtable left join customtabledetail on cd_ctid=ct_id where ct_caller='MESWarehouse' and cd_varchar50_3=pi_whcode) pi_whcode,pi_departmentname,pi_recordman,pi_remark," + flag + " flag from prodinout where pi_id=?",
+                        new BeanPropertyRowMapper<ProdInOutMakeGive>(ProdInOutMakeGive.class), piId);
+                List<ProdInOutMakeGiveDetail> prodInOutMakeGiveDetails = baseDao.query("select pd_prodcode,pd_outqty,pd_id,pd_orderdetno from prodiodetail where pd_piid=" + piId, ProdInOutMakeGiveDetail.class);
+                prodInOutMakeGive.setDetail(prodInOutMakeGiveDetails);
+                Map<String, Object> map = syncMESCheckBomItems(JSON.toJSONString(prodInOutMakeGive, SerializerFeature.WriteMapNullValue).replace("null", "\"\""), tokenConfig.get("syncInOutMakeGive"));
+                hashMap.put("code", -1);
+                hashMap.put("msg", "MES异常,请联系MES处理!");
+                if (map != null&&!map.isEmpty()) {
+                    int code = Integer.parseInt(StringUtil.nvl(map.get("code"), "-1"));
+                    hashMap.put("code", code);
+                    hashMap.put("msg", map.get("msg"));
+                }
+            }else {
+                hashMap.put("code", -1);
+                hashMap.put("msg", "參數异常,请核对处理!");
+            }
+            return hashMap;
         }catch (Exception e){
             logger.error("同步补料单异常信息:"+e.getMessage());
+            hashMap.put("code", -1);
+            hashMap.put("msg",StringUtil.nvl(e.getMessage(),"接口返回空,请联系MES处理!").substring(0,200));
             e.printStackTrace();
-            return ApiResponse.failRsp("104",e.getMessage());
+            return hashMap;
         }
     }
 

+ 23 - 0
src/main/java/com/uas/eis/service/Impl/MESServiceImpl.java

@@ -1913,6 +1913,29 @@ public class MESServiceImpl implements MESService {
             return ApiResponse.failRsp("10081",requestId,"参数异常!");
     }
 
+    @Override
+    public ApiResult<String> confirmProdInOutMakeGive(HttpServletRequest request) {
+        String requestId = request.getHeader("RequestId");
+        JSONObject jsonData = getJsonData(request);
+        if (jsonData!=null&&jsonData.size()>0){
+            int erpId = Integer.parseInt(StringUtil.nvl(jsonData.get("erpId"), "0"));
+            if (erpId>0){
+                if (baseDao.checkIf("prodinout","pi_id="+erpId)){
+                    Employee employee = baseDao.getJdbcTemplate().queryForObject("select * from employee where em_code=?", new BeanPropertyRowMapper<Employee>(Employee.class), "mes");
+                    String s = postProdInOut(erpId, "ProdInOut!Make!Give", employee);
+                    Object data = baseDao.getFieldDataByCondition("prodinout", "pi_inoutno", "pi_id=" + erpId);
+                    if (s!=null) {
+                        return ApiResponse.failRsp("10094", requestId, "生产补料单:" +data+",过账失败!");
+                    }else
+                        return ApiResponse.successRsp("0", requestId, "生产补料单:" +data+ "已过账,请在ERP查看!");
+                }else
+                    return ApiResponse.failRsp("10093",requestId,"生产领料单不存在,请核对!");
+            }else
+                return ApiResponse.failRsp("10092",requestId,"参数异常!");
+        }else
+            return ApiResponse.failRsp("10091",requestId,"参数异常!");
+    }
+
     private Map<String, JSONArray> getData(HttpServletRequest request){
         Map<String, JSONArray> map = new HashMap<>();
         try {

+ 2 - 0
src/main/java/com/uas/eis/service/MESService.java

@@ -143,4 +143,6 @@ public interface MESService {
      * @return
      */
     ApiResult<String> confirmSendNotify(HttpServletRequest request);
+
+    ApiResult<String> confirmProdInOutMakeGive(HttpServletRequest request);
 }

+ 2 - 1
src/main/resources/api_sign_key_mapping.properties

@@ -11,4 +11,5 @@ syncCustomer=webEditCustomer
 syncMakeMaterialCheck=checkProdBomItem
 updateChangeOrderByErp=updateChangeOrderByErp
 syncMakeScrap=updateScrappedItemByErp
-syncSendNotify=updateErpShipment
+syncSendNotify=updateErpShipment
+syncInOutMakeGive=updateErpFeeding