|
|
@@ -1,8 +1,15 @@
|
|
|
package com.uas.eis.serviceImpl;
|
|
|
|
|
|
+import com.uas.eis.dao.BaseDao;
|
|
|
+import com.uas.eis.dao.SqlRowList;
|
|
|
import com.uas.eis.service.StockService;
|
|
|
+import org.apache.commons.collections.map.HashedMap;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.LinkedList;
|
|
|
+import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
@@ -11,8 +18,109 @@ import java.util.Map;
|
|
|
*/
|
|
|
@Service
|
|
|
public class StockServiceImpl implements StockService{
|
|
|
+ @Autowired
|
|
|
+ BaseDao baseDao;
|
|
|
+
|
|
|
@Override
|
|
|
public Map<String, Object> postStockToYunding(Integer id) {
|
|
|
- return null;
|
|
|
+ Map<String,Object> data = getMainData(id);
|
|
|
+ List<Map<String,Object>> datas = new LinkedList<>();
|
|
|
+ datas.add(data);
|
|
|
+
|
|
|
+ Map<String,Object> res = new HashMap<>();
|
|
|
+ res.put("app_key","");
|
|
|
+ res.put("time_stamp",System.currentTimeMillis()/1000);
|
|
|
+ res.put("data",datas);
|
|
|
+
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
+ private Map<String,Object> getMainData(Integer id){
|
|
|
+ Map<String,Object> data = new HashMap<>();
|
|
|
+ SqlRowList rs = baseDao.queryForRowSet("select pi_id,pi_class,pi_inoutno,pi_whcode,pi_purpose from prodinout where pi_id=" + id);
|
|
|
+ if(rs.next()){
|
|
|
+ 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("out_warehouse_no",rs.getString("pi_inwhcode"));
|
|
|
+ data.put("remark",rs.getString("pi_remark"));
|
|
|
+ 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 whCode;
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<Map<String,Object>> getDetailData(Integer id){
|
|
|
+ List<Map<String,Object>> datas = new LinkedList<>();
|
|
|
+ Map<String,Object> data = new HashMap<>();
|
|
|
+ SqlRowList rs = baseDao.queryForRowSet("select pd_piclass,pd_id,pd_ordercode,pd_orderdetno,pd_batchcode,pd_prodcode,pd_inqty,pd_outqty,pd_description from prodiodetail where pd_piid=" + id);
|
|
|
+ while (rs.next()){
|
|
|
+ data = new HashMap<>();
|
|
|
+ data.put("child_no",rs.getString("pd_id"));
|
|
|
+ data.put("purchase_no",rs.getString("pd_ordercode"));
|
|
|
+ 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")));
|
|
|
+ datas.add(data);
|
|
|
+ }
|
|
|
+ return datas;
|
|
|
+ }
|
|
|
+
|
|
|
+ private int getQty(String piClass,int inQty,int outQty){
|
|
|
+ int correctQty = 0;
|
|
|
+ switch (piClass){
|
|
|
+ case "采购验收单":
|
|
|
+ correctQty = inQty;
|
|
|
+ break;
|
|
|
+ case "采购验退单":
|
|
|
+ correctQty = outQty;
|
|
|
+ break;
|
|
|
+ case "委外验收单":
|
|
|
+ correctQty = inQty;
|
|
|
+ break;
|
|
|
+ case "委外验退单":
|
|
|
+ correctQty = outQty;
|
|
|
+ break;
|
|
|
+ case "拨出单":
|
|
|
+ correctQty = outQty;
|
|
|
+ break;
|
|
|
+ case "其它出库单":
|
|
|
+ correctQty = outQty;
|
|
|
+ break;
|
|
|
+ case "其它入库单":
|
|
|
+ correctQty = inQty;
|
|
|
+ break;
|
|
|
+ default:break;
|
|
|
+ }
|
|
|
+ return correctQty;
|
|
|
+ }
|
|
|
+
|
|
|
+ private int getOrderType(String piClass){
|
|
|
+ int orderType = -1;
|
|
|
+ switch (piClass){
|
|
|
+ case "采购验收单":
|
|
|
+ orderType = 0;
|
|
|
+ break;
|
|
|
+ case "采购验退单":
|
|
|
+ orderType = 4;
|
|
|
+ break;
|
|
|
+ case "拨出单":
|
|
|
+ orderType = 1;
|
|
|
+ break;
|
|
|
+ case "其它出库单":
|
|
|
+ orderType = 3;
|
|
|
+ break;
|
|
|
+ case "其它入库单":
|
|
|
+ orderType = 2;
|
|
|
+ break;
|
|
|
+ default:break;
|
|
|
+ }
|
|
|
+ return orderType;
|
|
|
}
|
|
|
}
|