|
|
@@ -1,5 +1,6 @@
|
|
|
package restcontroller.webmanage.sale.invbal;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Calendar;
|
|
|
import java.util.HashMap;
|
|
|
@@ -18,7 +19,9 @@ import common.data.Rows;
|
|
|
import common.data.RowsMap;
|
|
|
import common.data.SQLFactory;
|
|
|
import common.data.db.DBConnect;
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
import restcontroller.R;
|
|
|
+import utility.ERPDocking;
|
|
|
|
|
|
@API(title = "库存管理")
|
|
|
public class invbal extends Controller {
|
|
|
@@ -106,5 +109,78 @@ public class invbal extends Controller {
|
|
|
return getSucReturnObject().setData(rows).toString();
|
|
|
}
|
|
|
|
|
|
+ @API(title = "查询Erp库存列表", apiversion = R.ID20230408091703.v1.class)
|
|
|
+ public String queryErpInvbalList() throws YosException {
|
|
|
+ String itemno = content.getString("itemno");
|
|
|
+ String itemname = content.getString("itemname");
|
|
|
+ JSONArray itemclassids = content.getJSONArray("itemclassids");
|
|
|
+ String where ="1=2";
|
|
|
+ if(!StringUtils.isBlank(itemno)){
|
|
|
+ where=where+" or t2.itemno like '%"+itemno+"%'";
|
|
|
+ }
|
|
|
+ if(!StringUtils.isBlank(itemname)){
|
|
|
+ where=where+" or t2.itemname like '%"+itemname+"%' ";
|
|
|
+ }
|
|
|
+ if (itemclassids.size() > 0) {
|
|
|
+ String sql = " or t1.itemid in ( SELECT itemid from sa_itemsaleclass WHERE itemclassid IN " + itemclassids + " and siteid='" + siteid + "')";
|
|
|
+ sql = sql.replace("[", "(").replace("]", ")");
|
|
|
+ where=where+sql;
|
|
|
+ }
|
|
|
+
|
|
|
+ SQLFactory sqlFactory =new SQLFactory(this,"订单明细未发商品列表");
|
|
|
+ sqlFactory.addParameter("siteid", siteid);
|
|
|
+ sqlFactory.addParameter_SQL("where", where);
|
|
|
+ Rows rows = dbConnect.runSqlQuery(sqlFactory);
|
|
|
+ System.out.println(rows.size());
|
|
|
+ Rows rowsitemclass = dbConnect.runSqlQuery(" select t7.itemclassname,t6.itemid,t8.brandname from sa_itemsaleclass t6 LEFT JOIN plm_itemclass t7 ON t7.itemclassid = t6.itemclassid AND t7.siteid = t6.siteid LEFT JOIN sa_brand t8 ON t8.sa_brandid = t7.sa_brandid AND t8.siteid = t7.siteid where t6.siteid='" + siteid + "'");
|
|
|
+ RowsMap itemclassRowsMap = rowsitemclass.toRowsMap("itemid");
|
|
|
+
|
|
|
+ RowsMap rowsMap =rows.toRowsMap("itemno");
|
|
|
+
|
|
|
+
|
|
|
+ SQLFactory sqlFactory1 =new SQLFactory(this,"商品发货数量汇总");
|
|
|
+ sqlFactory1.addParameter("siteid", siteid);
|
|
|
+ Rows sumQtyRows = dbConnect.runSqlQuery(sqlFactory1);
|
|
|
+ RowsMap sumQtyRowsMap= sumQtyRows.toRowsMap("itemno");
|
|
|
+
|
|
|
+
|
|
|
+ ERPDocking erpDocking =new ERPDocking();
|
|
|
+ JSONArray jsonArray = erpDocking.getErpIcinvbalRows(200000, 1,rows.toJsonArray("itemno"));
|
|
|
+ if(!jsonArray.isEmpty()){
|
|
|
+ for (Object object:jsonArray) {
|
|
|
+ JSONObject jsonObject =(JSONObject)object;
|
|
|
+ if(rowsMap.containsKey(jsonObject.getString("fitemno"))){
|
|
|
+ if(rowsMap.get(jsonObject.getString("fitemno")).isNotEmpty()){
|
|
|
+ rowsMap.get(jsonObject.getString("fitemno")).get(0).put("invbalqty", jsonObject.getBigDecimalValue("fqty"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (Row row:rows) {
|
|
|
+ row.put("itemclass", itemclassRowsMap.get(row.getString("itemid")));
|
|
|
+ if(sumQtyRowsMap.containsKey(row.getString("itemno"))){
|
|
|
+ if(sumQtyRowsMap.get(row.getString("itemno")).isNotEmpty()){
|
|
|
+ row.put("unsoldqty", sumQtyRowsMap.get(row.getString("itemno")).get(0).getBigDecimal("qty"));
|
|
|
+ }else {
|
|
|
+ row.put("unsoldqty", BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+ if(!row.containsKey("invbalqty")){
|
|
|
+ row.put("invbalqty",BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return getSucReturnObject().setData(rows).toString();
|
|
|
+ }
|
|
|
+ @API(title = "查询指定商品对应的未发货订单明细", apiversion = R.ID20230408101803.v1.class)
|
|
|
+ public String queryOrderDetailList() throws YosException {
|
|
|
+ String itemno = content.getString("itemno");
|
|
|
+
|
|
|
+
|
|
|
+ SQLFactory sqlFactory =new SQLFactory(this,"未发货订单明细列表");
|
|
|
+ sqlFactory.addParameter("siteid", siteid);
|
|
|
+ sqlFactory.addParameter("itemno", itemno);
|
|
|
+ Rows rows = dbConnect.runSqlQuery(sqlFactory);
|
|
|
+ return getSucReturnObject().setData(rows).toString();
|
|
|
+ }
|
|
|
|
|
|
}
|