|
|
@@ -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+"')");
|
|
|
+ }
|
|
|
}
|