Procházet zdrojové kódy

【集团EDI-新思&歌尔】【新思-增加日志记录】

DINGYL před 2 měsíci
rodič
revize
223f24c9e6

+ 19 - 16
src/main/java/com/uas/eis/service/Impl/SynaServiceImpl.java

@@ -21,23 +21,17 @@ import java.io.IOException;
 import java.util.*;
 
 /**
- * @author koul
- * @email koul@usoftchina.com
- * @date 2021-12-06 18:27
+ * @author Dingyl
  */
 @Service
 public class SynaServiceImpl implements SynaService {
     private final Logger logger = LoggerFactory.getLogger(this.getClass());
-    private static Map<String, String> tokenConfig = TokenProperties.getAllProperty();
 
     @Autowired
     private BaseDao baseDao;
 
     @Autowired
     private SynaConfig synaConfig;
-    @Autowired
-    private CommonService commonService;
-
 
     @Override
     public Map<String, Object> sendPurchaseToSyna(String master, Integer id) throws EDISchemaException, EDIStreamException, IOException {
@@ -46,7 +40,7 @@ public class SynaServiceImpl implements SynaService {
         logger.info("sendPurchaseToSyna-beg:{}:{}",master,id);
         Purchase po=getPO(id);
         if(po!=null){
-            String ediId = getEDIId();
+            String ediId = getEDIId(master);
             System.out.println(ediId);
             X12Converter converter=new X12Converter();
             String data=converter.convertToX12(po,ediId,synaConfig);
@@ -54,7 +48,7 @@ public class SynaServiceImpl implements SynaService {
             System.out.println( data);
             String url= synaConfig.getUrl_850();
             logger.info("sendPurchaseToSyna:po:{} X12-data:{}",po.getPu_code(),data);
-            modelMap=toSynaptics(url,data);
+            modelMap=toSynaptics(url,data,"850",id);
             return modelMap;
         }else{
             logger.info("sendPurchaseToSyna:采购单不存在:id={}",id);
@@ -68,7 +62,7 @@ public class SynaServiceImpl implements SynaService {
         logger.info("sendPurchaseChangeToSyna-beg:{}:{}",master,id);
         PurchaseChange pc=getPC(id);
         if(pc!=null){
-            String ediId = getEDIId();
+            String ediId = getEDIId(master);
             System.out.println(ediId);
             X12Converter converter=new X12Converter();
             String data=converter.convertToX12(pc,ediId,synaConfig);
@@ -76,7 +70,7 @@ public class SynaServiceImpl implements SynaService {
             System.out.println( data);
             String url= synaConfig.getUrl_860();
             logger.info("sendPurchaseChangeToSyna:po:{} X12-data:{}",pc.getPc_code(),data);
-            modelMap=toSynaptics(url,data);
+            modelMap=toSynaptics(url,data,"860",id);
             return modelMap;
         }else{
             logger.info("sendPurchaseChangeToSyna:采购变更单不存在:id={}",id);
@@ -91,7 +85,7 @@ public class SynaServiceImpl implements SynaService {
         logger.info("sendPurchaseChangeToSyna-beg:{}:{}",master,id);
         POS pos=getPOS(id);
         if(pos!=null){
-            String ediId = getEDIId();
+            String ediId = getEDIId(master);
             System.out.println(ediId);
             X12Converter converter=new X12Converter();
             String data=converter.convertToX12(pos,ediId,synaConfig);
@@ -99,13 +93,14 @@ public class SynaServiceImpl implements SynaService {
             System.out.println( data);
             String url= synaConfig.getUrl_867();
             logger.info("sendPOSToSyna:po:{} X12-data:{}",pos.getPs_code(),data);
-            modelMap=toSynaptics(url,data);
+            modelMap=toSynaptics(url,data,"867",id);
             return modelMap;
         }else{
             logger.info("sendPurchaseChangeToSyna:POS单据不存在:id={}",id);
         }
         return Collections.emptyMap();
     }
+
     private POS getPOS(Integer id){
         POS pos =baseDao.getJdbcTemplate().queryForObject("select * from POSREPORT_SYNA where ps_id=?", new BeanPropertyRowMapper<POS>(POS.class), id);
         List<POSDetail> detail = baseDao.getJdbcTemplate().query("select * FROM posreport_syna_det WHERE PD_PsID=? ORDER BY PD_DETNO",
@@ -150,12 +145,12 @@ public class SynaServiceImpl implements SynaService {
         po.setItems(detail);
         return po;
     }
-    private String getEDIId(){
+    private String getEDIId(String master){
         String ediId = baseDao.getJdbcTemplate()
-                .queryForObject("select lpad(N_HUASL_T.EDI_SYNAPTICS_SEQ.nextval,9,'0') from dual", String.class);
+                .queryForObject("select lpad("+master+".EDI_SYNAPTICS_SEQ.nextval,9,'0') from dual", String.class);
         return ediId;
     }
-    private Map<String, Object> toSynaptics(String url,String data) throws IOException {
+    private Map<String, Object> toSynaptics(String url,String data,String type,int id) throws IOException {
         logger.info("请求开始:url:{}",url);
         Map<String, Object> map = new HashMap<String, Object>();
         String username=synaConfig.getUsername();
@@ -178,6 +173,14 @@ public class SynaServiceImpl implements SynaService {
         System.out.println(response.headers().get("x-oracle-ics-instance-id"));
         map.put("code",response.code());
         map.put("x-oracle-ics-instance-id",response.headers().get("x-oracle-ics-instance-id"));
+        //记录日志
+        String flagStr=response.headers().get("x-oracle-ics-instance-id")==null?"":response.headers().get("x-oracle-ics-instance-id");
+        logSyna(type,id,flagStr,String.valueOf(response.code()));
         return map;
     }
+
+    private void logSyna(String type,int id,String flagStr,String responseCode){
+        baseDao.execute("insert into edi_syna_log(id_,type_,pageid,date_,flag_,responsecode_)" +
+                " values(edi_syna_log_seq.nextval,'"+type+"',"+id+",sysdate,'"+flagStr+"','"+responseCode+"')");
+    }
 }