|
|
@@ -7,10 +7,7 @@ import com.uas.eis.dao.SqlRowList;
|
|
|
import com.uas.eis.entity.EdiLog;
|
|
|
import com.uas.eis.entity.EdiPostLog;
|
|
|
import com.uas.eis.service.StockService;
|
|
|
-import com.uas.eis.utils.BaseUtil;
|
|
|
-import com.uas.eis.utils.Constant;
|
|
|
-import com.uas.eis.utils.HttpUtil;
|
|
|
-import com.uas.eis.utils.JacksonUtil;
|
|
|
+import com.uas.eis.utils.*;
|
|
|
import org.apache.commons.collections.map.HashedMap;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.jdbc.support.rowset.SqlRowSet;
|
|
|
@@ -34,7 +31,6 @@ public class StockServiceImpl implements StockService{
|
|
|
|
|
|
@Autowired
|
|
|
BaseDao baseDao;
|
|
|
-
|
|
|
@Autowired
|
|
|
EdiLogDao ediLogDao;
|
|
|
@Autowired
|
|
|
@@ -67,7 +63,7 @@ public class StockServiceImpl implements StockService{
|
|
|
System.out.println("responseText:" + responseText);
|
|
|
System.out.println("responseCode:" + response.getStatusCode());
|
|
|
if(response.getStatusCode()!=200){
|
|
|
- throw new RuntimeException("yunding server error");
|
|
|
+ throw new RuntimeException("yunding server error:" + responseText);
|
|
|
}
|
|
|
|
|
|
Map<String,Object> responseMap = JacksonUtil.fromJson(response.getResponseText());
|
|
|
@@ -80,7 +76,7 @@ public class StockServiceImpl implements StockService{
|
|
|
List<String> successCodes = (List<String>)msgJson.get("s_no");
|
|
|
if(successCodes.contains(outerNo)){
|
|
|
res.put("success",true);
|
|
|
- sendSuccessLog(outerNo,jsonData,"send success");
|
|
|
+ ediLogDao.save(LogUtil.getSendSuccessLog(outerNo,jsonData,"send success"));
|
|
|
}else{
|
|
|
res.put("success",false);
|
|
|
res.put("remark","云顶处理失败!");
|
|
|
@@ -114,6 +110,7 @@ public class StockServiceImpl implements StockService{
|
|
|
|
|
|
if(response.getStatusCode()!=200){
|
|
|
responseText = "yunding server error";
|
|
|
+ throw new RuntimeException(response.getResponseText());
|
|
|
}
|
|
|
|
|
|
responseText = response.getResponseText();
|
|
|
@@ -123,7 +120,7 @@ public class StockServiceImpl implements StockService{
|
|
|
Map<String,Object> responseMap = JacksonUtil.fromJson(response.getResponseText());
|
|
|
|
|
|
if(!"0".equals(String.valueOf(responseMap.get("code")))){
|
|
|
- requestFailLog(responseText);
|
|
|
+ ediLogDao.save(LogUtil.getRequestFailLog(responseText));
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
@@ -132,40 +129,41 @@ public class StockServiceImpl implements StockService{
|
|
|
}
|
|
|
|
|
|
List<Map<String,Object>> datas = (List<Map<String,Object>>) responseMap.get("data");
|
|
|
- execPostProcedure(datas,responseText);
|
|
|
-
|
|
|
+ if(datas.size()>0){
|
|
|
+ execPostProcedure(datas,responseText);
|
|
|
+ }
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
- postFailLog(responseText,e.getMessage());
|
|
|
+ ediLogDao.save(LogUtil.getPostFailLog(responseText,e.getMessage()));
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
public void execPostProcedure(List<Map<String,Object>> datas,String responseText){
|
|
|
+ String code = null;
|
|
|
+ String piClass = null;
|
|
|
+ EdiPostLog postHist = null;
|
|
|
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;
|
|
|
+ code = String.valueOf(data.get("outer_no"));
|
|
|
+ piClass = String.valueOf(data.get("src_order_type"));
|
|
|
+ postHist = null;
|
|
|
try {
|
|
|
postHist = ediPostLogDao.findByCodeAndPiClass(code,piClass);
|
|
|
if(postHist!=null){ //说明之前已经过账成功
|
|
|
postConfirmToYunding(code,1);
|
|
|
}else{ //没有记录,说明没有过账成功
|
|
|
- System.out.println("code:" + code);
|
|
|
- System.out.println("piClass:" + piClass);
|
|
|
String out = baseDao.callProcedure("SP_YUNDING_STOCKPOST",new Object[]{code,piClass});
|
|
|
if (out!=null){
|
|
|
- postFailLog(responseText,out);
|
|
|
+ ediLogDao.save(LogUtil.getPostFailLog(code,responseText,out));
|
|
|
}else{
|
|
|
- postSuccessLog(responseText);
|
|
|
- logToAvoidRepeatPost(code,piClass); //记录到edi_post_log,防止调用接口失败,下次重复过账
|
|
|
+ ediLogDao.save(LogUtil.getPostSuccessLog(code,responseText));
|
|
|
+ ediPostLogDao.save(LogUtil.getLogToAvoidRepeatPost(code,piClass)); //记录到edi_post_log,防止调用接口失败,下次重复过账
|
|
|
postConfirmToYunding(code,1);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
- postFailLog(responseText,e.getMessage());
|
|
|
+ ediLogDao.save(LogUtil.getPostFailLog(code,responseText,e.getMessage()));
|
|
|
}
|
|
|
|
|
|
}
|
|
|
@@ -189,77 +187,28 @@ public class StockServiceImpl implements StockService{
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private EdiPostLog logToAvoidRepeatPost(String code,String piClass){
|
|
|
- EdiPostLog ediPostLog = new EdiPostLog();
|
|
|
- ediPostLog.setCode(code);
|
|
|
- ediPostLog.setPiClass(piClass);
|
|
|
- ediPostLogDao.save(ediPostLog);
|
|
|
- return ediPostLog;
|
|
|
- }
|
|
|
-
|
|
|
- private EdiLog postSuccessLog(String responseText){
|
|
|
- EdiLog ediLog = new EdiLog();
|
|
|
- ediLog.setData(responseText);
|
|
|
- ediLog.setStatus("success");
|
|
|
- ediLog.setType("post");
|
|
|
- ediLogDao.save(ediLog);
|
|
|
- return ediLog;
|
|
|
- }
|
|
|
-
|
|
|
- private EdiLog sendSuccessLog(String outerNo,String data,String type){
|
|
|
- EdiLog ediLog = new EdiLog();
|
|
|
- ediLog.setKeyValue(outerNo);
|
|
|
- ediLog.setData(data);
|
|
|
- ediLog.setStatus("success");
|
|
|
- ediLog.setType(type);
|
|
|
- ediLogDao.save(ediLog);
|
|
|
- return ediLog;
|
|
|
- }
|
|
|
-
|
|
|
- private EdiLog postFailLog(String responseText,String errMsg){
|
|
|
- EdiLog ediLog = new EdiLog();
|
|
|
- ediLog.setData(responseText);
|
|
|
- ediLog.setErrorMsg(errMsg);
|
|
|
- ediLog.setErrorCode("uas post fail");
|
|
|
- ediLog.setStatus("fail");
|
|
|
- ediLog.setType("post fail");
|
|
|
- ediLogDao.save(ediLog);
|
|
|
- return ediLog;
|
|
|
- }
|
|
|
-
|
|
|
- private EdiLog requestFailLog(String responseText){
|
|
|
- Map<String,Object> responseMap = JacksonUtil.fromJson(responseText);
|
|
|
- EdiLog ediLog = new EdiLog();
|
|
|
- ediLog.setData(responseText);
|
|
|
- ediLog.setErrorCode(String.valueOf(responseMap.get("code")));
|
|
|
- ediLog.setErrorMsg(String.valueOf(responseMap.get("message")));
|
|
|
- ediLog.setStatus("fail");
|
|
|
- ediLog.setType("request fail");
|
|
|
- ediLogDao.save(ediLog);
|
|
|
- return ediLog;
|
|
|
- }
|
|
|
-
|
|
|
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);
|
|
|
+ String piClass = null;
|
|
|
if(rs.next()){
|
|
|
+ piClass = rs.getString("pi_class");
|
|
|
data.put("outer_no",rs.getString("pi_inoutno"));
|
|
|
- data.put("warehouse_no",getWarehouseCode(rs.getString("pi_class"),rs.getString("pi_whcode"),rs.getString("pi_purpose")));
|
|
|
+ data.put("warehouse_no",getWarehouseCode(piClass,rs.getString("pi_whcode"),rs.getString("pi_purpose")));
|
|
|
data.put("out_warehouse_no",rs.getString("pi_whcode"));
|
|
|
data.put("remark",rs.getString("pi_remark"));
|
|
|
- data.put("order_type",getOrderType(rs.getString("pi_class")));
|
|
|
- data.put("src_order_type",rs.getString("pi_class"));
|
|
|
+ data.put("order_type",getOrderType(piClass));
|
|
|
+ data.put("src_order_type",piClass);
|
|
|
data.put("details_list",getDetailData(id));
|
|
|
}
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
private String getWarehouseCode(String piClass,String piWhCode,String piPurpose){
|
|
|
- String whCode = piWhCode;
|
|
|
if("拨出单".equals(piClass)){
|
|
|
- whCode = piPurpose;
|
|
|
+ return piPurpose;
|
|
|
}
|
|
|
- return whCode;
|
|
|
+ return piWhCode;
|
|
|
}
|
|
|
|
|
|
private List<Map<String,Object>> getDetailData(Integer id){
|