|
|
@@ -27,12 +27,10 @@ import java.util.Map;
|
|
|
*/
|
|
|
@Service
|
|
|
public class StockServiceImpl implements StockService{
|
|
|
- private static final String sendStockToYundingUrl = "http://dc.oclean.com/setconfirmstatus";
|
|
|
+ private static final String sendStockToYundingUrl = "http://dc.oclean.com/putinstorage";
|
|
|
private static final String stockGetPostFromYundingUrl = "http://dc.oclean.com/getinstorage";
|
|
|
private static final String sendStockPostConfirmToYundingUrl = "http://dc.oclean.com/setconfirmstatus";
|
|
|
- //private static final String sendStockToYundingUrl = "http://localhost:8008/test/stock";
|
|
|
- //private static final String stockGetPostFromYundingUrl = "http://localhost:8008/test/stockpost";
|
|
|
- //private static final String sendStockPostConfirmToYundingUrl = "http://localhost:8008/test/stockconfirm";
|
|
|
+
|
|
|
|
|
|
@Autowired
|
|
|
BaseDao baseDao;
|
|
|
@@ -42,6 +40,59 @@ public class StockServiceImpl implements StockService{
|
|
|
@Autowired
|
|
|
EdiPostLogDao ediPostLogDao;
|
|
|
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> postStockToYunding(Integer id) {
|
|
|
+ Map<String,Object> data = getMainData(id);
|
|
|
+ List<Map<String,Object>> datas = new LinkedList<>();
|
|
|
+ datas.add(data);
|
|
|
+
|
|
|
+ String timestamp = String.valueOf(System.currentTimeMillis()/1000);
|
|
|
+ String outerNo = String.valueOf(data.get("outer_no"));
|
|
|
+
|
|
|
+ Map<String,Object> postMapData = new HashMap<>();
|
|
|
+ postMapData.put("app_key", Constant.yundingAppKey);
|
|
|
+ postMapData.put("time_stamp",timestamp);
|
|
|
+ postMapData.put("data",datas);
|
|
|
+
|
|
|
+ return postData(outerNo,postMapData,timestamp);
|
|
|
+ }
|
|
|
+
|
|
|
+ private Map<String,Object> postData(String outerNo,Map<String,Object> data,String timestamp){
|
|
|
+ Map<String,Object> res = new HashMap<>();
|
|
|
+ String jsonData = JacksonUtil.toSortJson(data);
|
|
|
+ try{
|
|
|
+ HttpUtil.Response response = HttpUtil.doPostToYunding(sendStockToYundingUrl,jsonData,timestamp);
|
|
|
+
|
|
|
+ String responseText = response.getResponseText();
|
|
|
+ System.out.println("responseText:" + responseText);
|
|
|
+ System.out.println("responseCode:" + response.getStatusCode());
|
|
|
+ if(response.getStatusCode()!=200){
|
|
|
+ throw new RuntimeException("yunding server error");
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String,Object> responseMap = JacksonUtil.fromJson(response.getResponseText());
|
|
|
+
|
|
|
+ if(!"0".equals(String.valueOf(responseMap.get("code")))){
|
|
|
+ res.put("success",false);
|
|
|
+ res.put("remark",responseMap.get("message"));
|
|
|
+ }else{
|
|
|
+ Map<String,Object> msgJson = (Map<String,Object>) responseMap.get("msg_json");
|
|
|
+ List<String> successCodes = (List<String>)msgJson.get("s_no");
|
|
|
+ if(successCodes.contains(outerNo)){
|
|
|
+ res.put("success",true);
|
|
|
+ }else{
|
|
|
+ res.put("success",false);
|
|
|
+ res.put("remark","云顶处理失败!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ res.put("success",false);
|
|
|
+ res.put("remark",e.getMessage());
|
|
|
+ }
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void autoPost(){
|
|
|
String timestamp = String.valueOf(System.currentTimeMillis()/1000);
|
|
|
@@ -55,51 +106,69 @@ public class StockServiceImpl implements StockService{
|
|
|
postMapData.put("page_size",100);
|
|
|
postMapData.put("page_index",0);
|
|
|
|
|
|
- String jsonData = JacksonUtil.toJson(postMapData);
|
|
|
- System.out.println("jsonData:" + jsonData);
|
|
|
+ String jsonData = JacksonUtil.toSortJson(postMapData);
|
|
|
+ String responseText = null;
|
|
|
try {
|
|
|
HttpUtil.Response response = HttpUtil.doPostToYunding(stockGetPostFromYundingUrl,jsonData,timestamp);
|
|
|
- String responseText = response.getResponseText();
|
|
|
+
|
|
|
+ if(response.getStatusCode()!=200){
|
|
|
+ responseText = "yunding server error";
|
|
|
+ }
|
|
|
+
|
|
|
+ responseText = response.getResponseText();
|
|
|
+
|
|
|
+ System.out.println("responseText" + responseText);
|
|
|
+
|
|
|
Map<String,Object> responseMap = JacksonUtil.fromJson(response.getResponseText());
|
|
|
|
|
|
if(!"0".equals(String.valueOf(responseMap.get("code")))){
|
|
|
requestFailLog(responseText);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(responseMap.get("data")==null){
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
List<Map<String,Object>> datas = (List<Map<String,Object>>) responseMap.get("data");
|
|
|
- for(Map<String,Object> data:datas){
|
|
|
- String code = String.valueOf(data.get("outer_no"));
|
|
|
- String piClass = String.valueOf(data.get("src_order_type"));
|
|
|
- EdiPostLog postHist = null;
|
|
|
- try {
|
|
|
- postHist = ediPostLogDao.findByCodeAndPiClass(code,piClass);
|
|
|
- if(postHist!=null){ //说明之前已经过账成功
|
|
|
+ execPostProcedure(datas,responseText);
|
|
|
+
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ postFailLog(responseText,e.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public void execPostProcedure(List<Map<String,Object>> datas,String responseText){
|
|
|
+ for(Map<String,Object> data:datas){
|
|
|
+ String code = String.valueOf(data.get("outer_no"));
|
|
|
+ String piClass = String.valueOf(data.get("src_order_type"));
|
|
|
+ EdiPostLog postHist = null;
|
|
|
+ try {
|
|
|
+ postHist = ediPostLogDao.findByCodeAndPiClass(code,piClass);
|
|
|
+ if(postHist!=null){ //说明之前已经过账成功
|
|
|
+ postConfirmToYunding(code,1);
|
|
|
+ }else{ //没有记录,说明没有过账成功
|
|
|
+ String out = baseDao.callProcedure("SP_YUNDING_STOCKPOST",new Object[]{code,piClass});
|
|
|
+ if (out!=null){
|
|
|
+ postFailLog(responseText,out);
|
|
|
+ }else{
|
|
|
+ postSuccessLog(responseText);
|
|
|
+ logToAvoidRepeatPost(code,piClass); //记录到edi_post_log,防止调用接口失败,下次重复过账
|
|
|
postConfirmToYunding(code,1);
|
|
|
- }else{ //没有记录,说明没有过账成功
|
|
|
- String out = baseDao.callProcedure("SP_YUNDING_STOCKPOST",new Object[]{code,piClass});
|
|
|
- if (out!=null){
|
|
|
- postFailLog(responseText,out);
|
|
|
- }else{
|
|
|
- postSuccessLog(responseText);
|
|
|
- logToAvoidRepeatPost(code,piClass); //记录到edi_post_log,防止调用接口失败,下次重复过账
|
|
|
- postConfirmToYunding(code,1);
|
|
|
- }
|
|
|
}
|
|
|
-
|
|
|
- }catch (Exception e){
|
|
|
- e.printStackTrace();
|
|
|
- postFailLog(responseText,e.getMessage());
|
|
|
}
|
|
|
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ postFailLog(responseText,e.getMessage());
|
|
|
}
|
|
|
|
|
|
- }catch (Exception e){
|
|
|
- e.printStackTrace();
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
- private void postConfirmToYunding(String code,int type){
|
|
|
+ public void postConfirmToYunding(String code,int type){
|
|
|
String timestamp = String.valueOf(System.currentTimeMillis()/1000);
|
|
|
|
|
|
Map<String,Object> postMapData = new HashMap<>();
|
|
|
@@ -108,9 +177,9 @@ public class StockServiceImpl implements StockService{
|
|
|
postMapData.put("type",type);
|
|
|
postMapData.put("outer_no",code);
|
|
|
|
|
|
- String jsonData = JacksonUtil.toJson(postMapData);
|
|
|
+ String jsonData = JacksonUtil.toSortJson(postMapData);
|
|
|
try{
|
|
|
- HttpUtil.doPostToYunding(sendStockPostConfirmToYundingUrl,jsonData,timestamp);
|
|
|
+ HttpUtil.Response response = HttpUtil.doPostToYunding(sendStockPostConfirmToYundingUrl,jsonData,timestamp);
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
@@ -156,54 +225,6 @@ public class StockServiceImpl implements StockService{
|
|
|
return ediLog;
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public Map<String, Object> postStockToYunding(Integer id) {
|
|
|
- Map<String,Object> data = getMainData(id);
|
|
|
- List<Map<String,Object>> datas = new LinkedList<>();
|
|
|
- datas.add(data);
|
|
|
-
|
|
|
- String timestamp = String.valueOf(System.currentTimeMillis()/1000);
|
|
|
- String outerNo = String.valueOf(data.get("outer_no"));
|
|
|
-
|
|
|
- Map<String,Object> postMapData = new HashMap<>();
|
|
|
- postMapData.put("app_key", Constant.yundingAppKey);
|
|
|
- postMapData.put("time_stamp",timestamp);
|
|
|
- postMapData.put("data",datas);
|
|
|
-
|
|
|
- return postData(outerNo,postMapData,timestamp);
|
|
|
- }
|
|
|
-
|
|
|
- private Map<String,Object> postData(String outerNo,Map<String,Object> data,String timestamp){
|
|
|
- Map<String,Object> res = new HashMap<>();
|
|
|
- String jsonData = JacksonUtil.toJson(data);
|
|
|
- System.out.println("jsonData:" + jsonData);
|
|
|
- try{
|
|
|
- HttpUtil.Response response = HttpUtil.doPostToYunding(sendStockToYundingUrl,jsonData,timestamp);
|
|
|
-
|
|
|
- String responseText = response.getResponseText();
|
|
|
- Map<String,Object> responseMap = JacksonUtil.fromJson(response.getResponseText());
|
|
|
-
|
|
|
- if(!"0".equals(String.valueOf(responseMap.get("code")))){
|
|
|
- res.put("success",false);
|
|
|
- res.put("remark",responseMap.get("message"));
|
|
|
- }else{
|
|
|
- Map<String,Object> msgJson = (Map<String,Object>) responseMap.get("msg_json");
|
|
|
- List<String> successCodes = (List<String>)msgJson.get("s_no");
|
|
|
- if(successCodes.contains(outerNo)){
|
|
|
- res.put("success",true);
|
|
|
- }else{
|
|
|
- res.put("success",false);
|
|
|
- res.put("remark","云顶处理失败!");
|
|
|
- }
|
|
|
- }
|
|
|
- }catch (Exception e){
|
|
|
- e.printStackTrace();
|
|
|
- res.put("success",false);
|
|
|
- res.put("remark",e.getMessage());
|
|
|
- }
|
|
|
- return res;
|
|
|
- }
|
|
|
-
|
|
|
private Map<String,Object> getMainData(Integer id){
|
|
|
Map<String,Object> data = new HashMap<>();
|
|
|
SqlRowSet rs = baseDao.getJdbcTemplate().queryForRowSet("select pi_id,pi_class,pi_inoutno,pi_whcode,pi_purpose,pi_remark from prodinout where pi_id=" + id);
|
|
|
@@ -237,6 +258,8 @@ public class StockServiceImpl implements StockService{
|
|
|
data.put("purchase_detno",rs.getString("pd_orderdetno"));
|
|
|
data.put("batch_no",rs.getString("pd_batchcode"));
|
|
|
data.put("stockin_num",getQty(rs.getString("pd_piclass"),rs.getInt("pd_inqty"),rs.getInt("pd_outqty")));
|
|
|
+ data.put("spec_no",rs.getString("pd_prodcode"));
|
|
|
+ data.put("remark",rs.getString("pd_description"));
|
|
|
datas.add(data);
|
|
|
}
|
|
|
return datas;
|