Explorar o código

增加异常日志记录

koul %!s(int64=4) %!d(string=hai) anos
pai
achega
c6a46afabd

+ 20 - 14
src/main/java/com/uas/eis/service/Impl/ERPServiceImpl.java

@@ -70,20 +70,26 @@ public class ERPServiceImpl implements ERPService {
 
     @Override
     public ApiResult<String> syncUpdateReceiveByErp(String data) {
-        Map<Object, Object> store = BaseUtil.parseFormStoreToMap(data);
-        VerifyApply verifyApply = baseDao.getJdbcTemplate().queryForObject("select va_id,va_mescode,va_code,to_char(va_date,'yyyy-MM-dd HH24:mi:ss') va_date,va_vendcode,va_vendname,va_currency,va_rate,va_paymentscode,va_payments,va_transport,va_sendcode,va_emcode,va_emname,va_departmentcode,va_department,va_recorder,case when nvl(va_cop,' ')=' ' then 'BYT' else va_cop end va_cop,va_remark,va_ancode,va_factory,0 version,va_type,va_pucode,case when nvl(va_pucode,' ')=' ' then 0 else (select pu_id from purchase where pu_code=va_pucode) end pu_id,va_status,1 posted,to_char(va_auditdate,'yyyy-MM-dd HH24:mi:ss') va_auditdate,va_auditman,va_custcode,va_custname from VerifyApply where va_id=?",
-                new BeanPropertyRowMapper<VerifyApply>(VerifyApply.class), store.get("va_id"));
-        SqlRowList rs = baseDao.queryForRowSet("select case when va_custcode='柏英特' or nvl(va_custcode,' ')=' ' then 'BYT' else nvl(cu_mescode,cu_code) end cu_code,cu_name from verifyapply left join customer on va_custcode=cu_code where va_id="+store.get("va_id"));
-        if (rs.next()){
-            verifyApply.setVa_custcode(rs.getString("cu_code"));
-            //verifyApply.setVa_custname(rs.getString("cu_name"));
+        try {
+            Map<Object, Object> store = BaseUtil.parseFormStoreToMap(data);
+            VerifyApply verifyApply = baseDao.getJdbcTemplate().queryForObject("select va_id,va_mescode,va_code,to_char(va_date,'yyyy-MM-dd HH24:mi:ss') va_date,va_vendcode,va_vendname,va_currency,va_rate,va_paymentscode,va_payments,va_transport,va_sendcode,va_emcode,va_emname,va_departmentcode,va_department,va_recorder,case when nvl(va_cop,' ')=' ' then 'BYT' else va_cop end va_cop,va_remark,va_ancode,va_factory,0 version,va_type,va_pucode,case when nvl(va_pucode,' ')=' ' then 0 else (select pu_id from purchase where pu_code=va_pucode) end pu_id,va_status,1 posted,to_char(va_auditdate,'yyyy-MM-dd HH24:mi:ss') va_auditdate,va_auditman,va_custcode,va_custname from VerifyApply where va_id=?",
+                    new BeanPropertyRowMapper<VerifyApply>(VerifyApply.class), store.get("va_id"));
+            SqlRowList rs = baseDao.queryForRowSet("select case when va_custcode='柏英特' or nvl(va_custcode,' ')=' ' then 'BYT' else nvl(cu_mescode,cu_code) end cu_code,cu_name from verifyapply left join customer on va_custcode=cu_code where va_id="+store.get("va_id"));
+            if (rs.next()){
+                verifyApply.setVa_custcode(rs.getString("cu_code"));
+                //verifyApply.setVa_custname(rs.getString("cu_name"));
+            }
+            verifyApply.setMesPwd(MD5Util.encodeByMD5(tokenConfig.get("mesPwd")));
+            verifyApply.setMesUser(tokenConfig.get("mesUser"));
+            verifyApply.setFlag(Integer.parseInt(StringUtil.nvl(store.get("flag"),"-1")));
+            List<VerifyApplyDetail> verifyApplyDetails = baseDao.query("select vad_code,vad_prodcode,pr_detail,replace(PR_SPEC,'''','''''') pr_spec,pr_unit,va_recorder,va_date,pr_kh_user,cu_name,sum(nvl(vad_qty,0)) vad_qty,vad_salecode from ( select vad_code,vad_prodcode,pr_detail,pr_spec,pr_unit,vad_qty,va_recorder,to_char(va_date,'yyyy-MM-dd HH24:mi:ss') va_date,case when pr_kh_user='柏英特' or nvl(pr_kh_user,' ')=' ' then 'BYT' else nvl(cu_mescode,cu_code) end pr_kh_user,cu_name,vad_salecode from verifyapplydetail left join VerifyApply on va_id=vad_vaid left join product on vad_prodcode=pr_code left join customer on cu_shortname=pr_kh_user where nvl(vad_qty,0)>0 and vad_vaid="+store.get("va_id")+") group by vad_code,vad_prodcode,pr_detail,pr_spec,pr_unit,va_recorder,va_date,pr_kh_user,cu_name,vad_salecode", VerifyApplyDetail.class);
+            verifyApply.setDetail(verifyApplyDetails);
+            return syncMES(JSON.toJSONString(verifyApply, SerializerFeature.WriteMapNullValue).replace("null","\"\""),tokenConfig.get("syncUpdateReceiveByErp"));
+        }catch (Exception e){
+            logger.info("同步收料单异常信息:"+e.getMessage());
+            e.printStackTrace();
+            return ApiResponse.failRsp("104",e.getMessage());
         }
-        verifyApply.setMesPwd(MD5Util.encodeByMD5(tokenConfig.get("mesPwd")));
-        verifyApply.setMesUser(tokenConfig.get("mesUser"));
-        verifyApply.setFlag(Integer.parseInt(StringUtil.nvl(store.get("flag"),"-1")));
-        List<VerifyApplyDetail> verifyApplyDetails = baseDao.query("select vad_code,vad_prodcode,pr_detail,replace(PR_SPEC,'''','''''') pr_spec,pr_unit,va_recorder,va_date,pr_kh_user,cu_name,sum(nvl(vad_qty,0)) vad_qty,vad_salecode from ( select vad_code,vad_prodcode,pr_detail,pr_spec,pr_unit,vad_qty,va_recorder,to_char(va_date,'yyyy-MM-dd HH24:mi:ss') va_date,case when pr_kh_user='柏英特' or nvl(pr_kh_user,' ')=' ' then 'BYT' else nvl(cu_mescode,cu_code) end pr_kh_user,cu_name,vad_salecode from verifyapplydetail left join VerifyApply on va_id=vad_vaid left join product on vad_prodcode=pr_code left join customer on cu_shortname=pr_kh_user where nvl(vad_qty,0)>0 and vad_vaid="+store.get("va_id")+") group by vad_code,vad_prodcode,pr_detail,pr_spec,pr_unit,va_recorder,va_date,pr_kh_user,cu_name,vad_salecode", VerifyApplyDetail.class);
-        verifyApply.setDetail(verifyApplyDetails);
-        return syncMES(JSON.toJSONString(verifyApply, SerializerFeature.WriteMapNullValue).replace("null","\"\""),tokenConfig.get("syncUpdateReceiveByErp"));
     }
 
     private ApiResult<String> syncMES(String params,String url){
@@ -102,7 +108,7 @@ public class ERPServiceImpl implements ERPService {
             }
         }catch (Exception e){
             logger.info("异常信息:"+e.getMessage());
-            return ApiResponse.failRsp("102","接口调用异常,请联系MES处理!");
+            return ApiResponse.failRsp("103","接口调用异常,请联系MES处理!");
         }
     }
 }

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

@@ -972,6 +972,7 @@ public class MESServiceImpl implements MESService {
             JSONArray jsonArray1 = JSON.parseArray(StringUtil.nvl(page2, ""));
             map.put("detail",jsonArray1);
         } catch (IOException e) {
+            logger.info("参数解析异常信息:"+e.getMessage());
             e.printStackTrace();
         }
         return map;
@@ -983,6 +984,7 @@ public class MESServiceImpl implements MESService {
             String data = PSHttpUtils.readRaw(request.getInputStream());
             jsonObject = JSON.parseObject(data);
         } catch (IOException e) {
+            logger.info("参数解析异常信息:"+e.getMessage());
             e.printStackTrace();
         }
         return jsonObject;

+ 65 - 45
src/main/java/com/uas/eis/service/Impl/ScheduleTaskServiceImpl.java

@@ -41,65 +41,76 @@ public class ScheduleTaskServiceImpl implements ScheduleTaskService {
      */
     @Override
     public void syncProducts() {
-        SqlRowList rs = baseDao.queryForRowSet("select id from mes_product where status='W' order by id");
-        while (rs.next()){
-            Product product = baseDao.getJdbcTemplate().queryForObject("select case when pr_kh_user='柏英特' or nvl(pr_kh_user,' ')=' ' then 'BYT' else nvl(cu_mescode,cu_code) end pr_kh_user,pr_code ,pr_detail ,replace(PR_SPEC,'''','''''') pr_spec,nvl(pr_unit,'PCS') pr_unit,nvl(pr_cop,'BYT') pr_cop,nvl(pr_version,'0') pr_version,case when nvl(pr_kind,'')='半成品' or nvl(pr_kind,' ')='成品' then  'product' else 'raw' end pr_serial,nvl(pr_validdays,'0') pr_validdays,pr_msdlevel ,pr_kind3 ,pr_f_115 ,pr_f_116 ,pr_f_102,pr_kind,flag,pr_statuscode,pr_status from mes_product left join customer on pr_kh_user=cu_shortname where id=?",
-                    new BeanPropertyRowMapper<Product>(Product.class), rs.getInt("id"));
-            product.setMesUser(tokenConfig.get("mesUser"));
-            product.setMesPwd(MD5Util.encodeByMD5(tokenConfig.get("mesPwd")));
-            Map<String, Object> map = syncMES(JSON.toJSONString(product, SerializerFeature.WriteMapNullValue).replace("null", "\"\""), tokenConfig.get("syncProduct"));
-            if ("ZG".equals(StringUtil.nvl(product.getPr_kh_user(),""))){
-                product.setPr_kh_user("ZGSDC");
-                Map<String, Object> map1 =
-                        syncMES(JSON.toJSONString(product, SerializerFeature.WriteMapNullValue).replace("null", "\"\""), tokenConfig.get("syncProduct"));
-                if (map1!=null) {
-                    int code1 = Integer.parseInt(StringUtil.nvl(map1.get("code"), "100"));
-                    if (code1>0){
-                        baseDao.execute("insert into meserrorlog (mel_id,mel_url,mel_error,mel_indate,mel_djcode,mel_type) values (MESERRORLOG_SEQ.NEXTVAL,'"+tokenConfig.get("syncProduct")+"','"+StringUtil.nvl(map.get("msg"),"")+"',sysdate,'"+product.getPr_code()+"','物料资料')");
+        try {
+            SqlRowList rs = baseDao.queryForRowSet("select id from mes_product where status='W' order by id");
+            while (rs.next()){
+                Product product = baseDao.getJdbcTemplate().queryForObject("select case when pr_kh_user='柏英特' or nvl(pr_kh_user,' ')=' ' then 'BYT' else nvl(cu_mescode,cu_code) end pr_kh_user,pr_code ,pr_detail ,replace(PR_SPEC,'''','''''') pr_spec,nvl(pr_unit,'PCS') pr_unit,nvl(pr_cop,'BYT') pr_cop,nvl(pr_version,'0') pr_version,case when nvl(pr_kind,'')='半成品' or nvl(pr_kind,' ')='成品' then  'product' else 'raw' end pr_serial,nvl(pr_validdays,'0') pr_validdays,pr_msdlevel ,pr_kind3 ,pr_f_115 ,pr_f_116 ,pr_f_102,pr_kind,flag,pr_statuscode,pr_status from mes_product left join customer on pr_kh_user=cu_shortname where id=?",
+                        new BeanPropertyRowMapper<Product>(Product.class), rs.getInt("id"));
+                product.setMesUser(tokenConfig.get("mesUser"));
+                product.setMesPwd(MD5Util.encodeByMD5(tokenConfig.get("mesPwd")));
+                Map<String, Object> map = syncMES(JSON.toJSONString(product, SerializerFeature.WriteMapNullValue).replace("null", "\"\""), tokenConfig.get("syncProduct"));
+                if ("ZG".equals(StringUtil.nvl(product.getPr_kh_user(),""))){
+                    product.setPr_kh_user("ZGSDC");
+                    Map<String, Object> map1 =
+                            syncMES(JSON.toJSONString(product, SerializerFeature.WriteMapNullValue).replace("null", "\"\""), tokenConfig.get("syncProduct"));
+                    if (map1!=null) {
+                        int code1 = Integer.parseInt(StringUtil.nvl(map1.get("code"), "100"));
+                        if (code1>0){
+                            baseDao.execute("insert into meserrorlog (mel_id,mel_url,mel_error,mel_indate,mel_djcode,mel_type) values (MESERRORLOG_SEQ.NEXTVAL,'"+tokenConfig.get("syncProduct")+"','"+StringUtil.nvl(map.get("msg"),"")+"',sysdate,'"+product.getPr_code()+"','物料资料')");
+                        }
                     }
                 }
-            }
-            if (map!=null){
-                int code = Integer.parseInt(StringUtil.nvl(map.get("code"), "-1"));
-                if (code==0){
-                    baseDao.updateByCondition("mes_product","status='D'","status='W' and id="+rs.getInt("id"));
-                }else {
-                    baseDao.updateByCondition("mes_product","status='F'","status='W' and id="+rs.getInt("id"));
-                    baseDao.execute("insert into meserrorlog (mel_id,mel_url,mel_error,mel_indate,mel_djcode,mel_type) values (MESERRORLOG_SEQ.NEXTVAL,'"+tokenConfig.get("syncProduct")+"','"+StringUtil.nvl(map.get("msg"),"")+"',sysdate,'"+product.getPr_code()+"','物料资料')");
+                if (map!=null){
+                    int code = Integer.parseInt(StringUtil.nvl(map.get("code"), "-1"));
+                    if (code==0){
+                        baseDao.updateByCondition("mes_product","status='D'","status='W' and id="+rs.getInt("id"));
+                    }else {
+                        baseDao.updateByCondition("mes_product","status='F'","status='W' and id="+rs.getInt("id"));
+                        baseDao.execute("insert into meserrorlog (mel_id,mel_url,mel_error,mel_indate,mel_djcode,mel_type) values (MESERRORLOG_SEQ.NEXTVAL,'"+tokenConfig.get("syncProduct")+"','"+StringUtil.nvl(map.get("msg"),"")+"',sysdate,'"+product.getPr_code()+"','物料资料')");
+                    }
                 }
             }
+        }catch (Exception e){
+            logger.info("物料资料异常信息:"+e.getMessage());
+            e.printStackTrace();
         }
     }
 
     @Override
     public void syncMakeBases() {
-        SqlRowList rs = baseDao.queryForRowSet("select id,ma_code from mes_make where status='W' order by id");
-        while (rs.next()){
-            int count = baseDao.getCount("select count(1) from make where ma_statuscode='FINISH' and ma_code='" + rs.getString("ma_code") + "'");
-            String status="S";
-            if (count>0){
-                status="C";
-            }
-            Make make = baseDao.getJdbcTemplate().queryForObject("select ma_code,ma_prodcode,ma_qty,nvl(cu_mescode,'BYT') ma_custcode,pr_unit,pr_detail,replace(PR_SPEC,'''','''''') pr_spec,nvl(ma_zgrwl,ma_salecode) ma_salecode,to_char(ma_planbegindate,'yyyy-MM-dd') ma_planbegindate,to_char(ma_planenddate,'yyyy-MM-dd') ma_planenddate,nvl(ma_cop,'BYT') ma_cop,'"+status+"' status,to_char(ma_date,'yyyy-MM-dd HH24:mi:ss') ma_date,ma_recorder,nvl(ma_version,0) ma_version,erpid,wc_id,nvl(mk_id,0) ma_kind,to_char(ma_modifydate,'yyyy-MM-dd HH24:mi:ss') ma_modifydate,ma_modifier,flag from mes_make left join MakeKind on ma_kind=mk_name left join product on ma_prodcode=pr_code left join workcenter on ma_wccode=wc_code left join customer on pr_kh_user=cu_shortname where id=?",new BeanPropertyRowMapper<Make>(Make.class),rs.getInt("id"));
-            make.setMesPwd(MD5Util.encodeByMD5(tokenConfig.get("mesPwd")));
-            make.setMesUser(tokenConfig.get("mesUser"));
-            Map<String, Object> map = syncMES(JSON.toJSONString(make, SerializerFeature.WriteMapNullValue).replace("null", "\"\""), tokenConfig.get("syncMakeBase"));
-            if (map!=null){
-                int code = Integer.parseInt(StringUtil.nvl(map.get("code"), "-1"));
-                if (code==0){
-                    baseDao.updateByCondition("mes_make","status='D'","status='W' and id="+rs.getInt("id"));
-                }else {
-                    baseDao.updateByCondition("mes_make","status='F'","status='W' and id="+rs.getInt("id"));
-                    baseDao.execute("insert into meserrorlog (mel_id,mel_url,mel_error,mel_indate,mel_djcode,mel_type) values (MESERRORLOG_SEQ.NEXTVAL,'"+tokenConfig.get("syncMakeBase")+"','"+StringUtil.nvl(map.get("msg"),"")+"',sysdate,'"+make.getMa_code()+"','工单')");
+        try {
+            SqlRowList rs = baseDao.queryForRowSet("select id,ma_code from mes_make where status='W' order by id");
+            while (rs.next()) {
+                int count = baseDao.getCount("select count(1) from make where ma_statuscode='FINISH' and ma_code='" + rs.getString("ma_code") + "'");
+                String status = "S";
+                if (count > 0) {
+                    status = "C";
+                }
+                Make make = baseDao.getJdbcTemplate().queryForObject("select ma_code,ma_prodcode,ma_qty,nvl(cu_mescode,'BYT') ma_custcode,pr_unit,pr_detail,replace(PR_SPEC,'''','''''') pr_spec,nvl(ma_zgrwl,ma_salecode) ma_salecode,to_char(ma_planbegindate,'yyyy-MM-dd') ma_planbegindate,to_char(ma_planenddate,'yyyy-MM-dd') ma_planenddate,nvl(ma_cop,'BYT') ma_cop,'" + status + "' status,to_char(ma_date,'yyyy-MM-dd HH24:mi:ss') ma_date,ma_recorder,nvl(ma_version,0) ma_version,erpid,wc_id,nvl(mk_id,0) ma_kind,to_char(ma_modifydate,'yyyy-MM-dd HH24:mi:ss') ma_modifydate,ma_modifier,flag from mes_make left join MakeKind on ma_kind=mk_name left join product on ma_prodcode=pr_code left join workcenter on ma_wccode=wc_code left join customer on pr_kh_user=cu_shortname where id=?", new BeanPropertyRowMapper<Make>(Make.class), rs.getInt("id"));
+                make.setMesPwd(MD5Util.encodeByMD5(tokenConfig.get("mesPwd")));
+                make.setMesUser(tokenConfig.get("mesUser"));
+                Map<String, Object> map = syncMES(JSON.toJSONString(make, SerializerFeature.WriteMapNullValue).replace("null", "\"\""), tokenConfig.get("syncMakeBase"));
+                if (map != null) {
+                    int code = Integer.parseInt(StringUtil.nvl(map.get("code"), "-1"));
+                    if (code == 0) {
+                        baseDao.updateByCondition("mes_make", "status='D'", "status='W' and id=" + rs.getInt("id"));
+                    } else {
+                        baseDao.updateByCondition("mes_make", "status='F'", "status='W' and id=" + rs.getInt("id"));
+                        baseDao.execute("insert into meserrorlog (mel_id,mel_url,mel_error,mel_indate,mel_djcode,mel_type) values (MESERRORLOG_SEQ.NEXTVAL,'" + tokenConfig.get("syncMakeBase") + "','" + StringUtil.nvl(map.get("msg"), "") + "',sysdate,'" + make.getMa_code() + "','工单')");
+                    }
                 }
             }
+        }catch (Exception e){
+                logger.info("同步工单异常信息:"+e.getMessage());
+                e.printStackTrace();
         }
     }
 
     @Override
     public void syncMakeBaseDetails() {
-        SqlRowList rs = baseDao.queryForRowSet("select id,mm_code,mm_detno from mes_makematerial where status='W' order by id");
-        while (rs.next()) {
+        try {
+            SqlRowList rs = baseDao.queryForRowSet("select id,mm_code,mm_detno from mes_makematerial where status='W' order by id");
+            while (rs.next()) {
             int count = baseDao.getCount("select count(1) from mes_make where status='D' and ma_code='" + rs.getGeneralString("mm_code") + "'");
             if (count > 0) {
                 MakeMaterial makeMaterial = baseDao.getJdbcTemplate().queryForObject("select mm_code,erpid,mm_prodcode,pr_detail,replace(PR_SPEC,'''','''''') pr_spec,pr_unit,mm_oneuseqty qty,mm_qty,mm_oneuseqty,'main' type,bo_recorder,to_char(bo_date,'yyyy-MM-dd HH24:mi:ss') bo_date,nvl(bo_version,0) bo_version,nvl(bo_cop,'BYT') bo_cop,mm_prodcode mm_repprodcode,mm_balance,(select nvl(cu_mescode,'BYT') from Product left join customer on pr_kh_user=cu_shortname where pr_code=ma_prodcode) ma_custcode,to_char(mc_indate,'yyyy-MM-dd HH24:mi:ss') mc_indate,mc_recorder,flag,0 rpid from mes_makematerial left join make on ma_id=mm_maid left join Product on mm_prodcode=pr_code left join bom on bo_id=mm_bomid left join (select max(mc_indate) mc_indate,max(mc_recorder) mc_recorder,max(md_mmdetno) md_mmdetno,max(md_makecode) md_makecode from MakeMaterialChangeDet left join MakeMaterialChange on mc_id=md_mcid) on md_makecode=ma_code and md_mmdetno=mm_detno where id=? order by mm_detno", new BeanPropertyRowMapper<MakeMaterial>(MakeMaterial.class), rs.getInt("id"));
@@ -133,10 +144,15 @@ public class ScheduleTaskServiceImpl implements ScheduleTaskService {
                     }
                 }
             }
+        }catch (Exception e){
+            logger.info("同步工单BOM异常信息:"+e.getMessage());
+            e.printStackTrace();
         }
+    }
 
-        @Override
-        public void syncMakematerialReplace() {
+    @Override
+    public void syncMakematerialReplace() {
+        try {
             SqlRowList rs = baseDao.queryForRowSet("select id,mp_mmcode, mp_mmdetno,mp_mmid from mes_makematerialreplace where status='W' order by id");
             while (rs.next()) {
             int count =
@@ -174,7 +190,11 @@ public class ScheduleTaskServiceImpl implements ScheduleTaskService {
                     }
                 }
             }
+        }catch (Exception e){
+            logger.info("同步替代料异常信息:"+e.getMessage());
+            e.printStackTrace();
         }
+    }
 
     private Map<String, Object> syncMES(String params,String url){
         Map<String, Object> map = new HashMap<>();