eganwu 2 lat temu
rodzic
commit
29df9ef309

BIN
lib/yos.core-2.0.1-sources.jar


BIN
lib/yos.core-2.0.1.jar


+ 77 - 6
src/custom/restcontroller/webmanage/sale/logistics/LSALogistics.java

@@ -3,10 +3,14 @@ package restcontroller.webmanage.sale.logistics;
 import beans.datacontrllog.DataContrlLog;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.huaweicloud.sdk.meeting.v1.model.SearchQosHistoryMeetingsRequest;
 import common.Controller;
 import common.YosException;
 import common.annotation.API;
+import common.data.QuerySQL;
+import common.data.Row;
 import common.data.Rows;
+import common.data.SQLFactory;
 import restcontroller.R;
 
 import java.math.BigDecimal;
@@ -61,6 +65,10 @@ public class LSALogistics extends Controller {
             JSONObject object = (JSONObject) obj;
             Long st_stockbill_itemsid = object.getLongValue("st_stockbill_itemsid");
             BigDecimal qty = object.getBigDecimalValue("qty");
+            if (isStockbillItemsEmpty(this, st_stockbill_itemsid)) {
+                System.err.println("出库单不存在");
+                return getErrReturnObject().setErrMsg("出库单不存在").toString();
+            }
             if (isOut(this, st_stockbill_itemsid, qty)) {
                 return getErrReturnObject().setErrMsg("超出最大可送货数量").toString();
             }
@@ -80,28 +88,91 @@ public class LSALogistics extends Controller {
     }
 
     @API(title = "添加送货明细", apiversion = R.ID20230720141602.v1.class)
-    public String add() {
+    public String addMX() throws YosException {
+        //物流单ID
+        Long sa_logisticsid = content.getLongValue("sa_logisticsid");
+        //出入库表货品明细
+        JSONArray items = content.getJSONArray("items");
+
+        ArrayList<String> sqlList = new ArrayList<>();
+        for (Object obj : items) {
+            JSONObject object = (JSONObject) obj;
+            Long st_stockbill_itemsid = object.getLongValue("st_stockbill_itemsid");
+            BigDecimal qty = object.getBigDecimalValue("qty");
+            if (isStockbillItemsEmpty(this, st_stockbill_itemsid)) {
+                System.err.println("出库单不存在");
+                return getErrReturnObject().setErrMsg("出库单不存在").toString();
+            }
+            if (isOut(this, st_stockbill_itemsid, qty)) {
+                return getErrReturnObject().setErrMsg("超出最大可送货数量").toString();
+            }
+            if (isLogisticsItemEmpty(this, st_stockbill_itemsid)) {
+                sqlList.add(insertLogisticsItem(this, object).getSQL());
+            } else {
+                sqlList.add(updateLogisticsItem(this, object).getSQL());
+            }
+        }
+        dbConnect.runSqlUpdate(sqlList);
         return getSucReturnObject().toString();
     }
 
     @API(title = "删除送货明细", apiversion = R.ID20230720141902.v1.class)
-    public String delete() {
+    public String delete() throws YosException {
+        JSONArray sa_logistics_itemsids = content.getJSONArray("sa_logistics_itemsids");
+        String sql = "DELETE from sa_logistics_items where sa_logistics_itemsid in " + sa_logistics_itemsids + " and siteid='" + siteid + "'";
+        sql = sql.replace("[", "(").replace("]", ")");
+        dbConnect.runSqlUpdate(sql);
+
+
         return getSucReturnObject().toString();
     }
 
     @API(title = "送货明细列表", apiversion = R.ID20230720141702.v1.class)
-    public String selectMXList() {
-        return getSucReturnObject().toString();
+    public String selectMXList() throws YosException {
+        //物流单ID
+        Long sa_logisticsid = content.getLongValue("sa_logisticsid");
+
+        pageSorting = pageSorting.equals("''") ? "rowno" : pageSorting;
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_logistics_items");
+        querySQL.setTableAlias("t1");
+
+        querySQL.addJoinTable(JOINTYPE.left, "st_stockbill_items", "t2", "t2.st_stockbill_itemsid=t1.st_stockbill_itemsid and t2.siteid=t1.siteid",
+                "rowno", "itemno", "itemname", "model", "unit", "price", "amount", "remarks");
+        querySQL.addJoinTable(JOINTYPE.left, "st_stockbill", "t3", "t3.st_stockbillid =t2.st_stockbillid and t3.siteid=t2.siteid",
+                "billno");
+        querySQL.setWhere("t1.sa_logisticsid=" + sa_logisticsid);
+        querySQL.setWhere("t1.siteid='" + siteid+"'");
+        querySQL.setPage(pageSize, pageNumber).setOrderBy(pageSorting);
+        Rows rows = querySQL.query();
+        return getSucReturnObject().setData(rows).toString();
     }
 
     @API(title = "选择送货明细列表", apiversion = R.ID20230720141802.v1.class)
     public String selectChooseMXList() {
+        //物流单ID
+        Long sa_logisticsid = content.getLongValue("sa_logisticsid");
         return getSucReturnObject().toString();
     }
 
     @API(title = "物流单详情", apiversion = R.ID20230720142002.v1.class)
-    public String detail() {
-        return getSucReturnObject().toString();
+    public String detail() throws YosException {
+        //物流单ID
+        Long sa_logisticsid = content.getLongValue("sa_logisticsid");
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_logistics");
+        querySQL.setTableAlias("t1");
+
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t2.sys_enterpriseid=t1.sys_enterpriseid and t2.siteid=t1.siteid",
+                "enterprisename");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t3", "t3.sys_enterpriseid=t2.sys_enterpriseid and t3.siteid=t2.siteid",
+                "agentnum");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_logiscomp", "t4", "t4.sa_logiscompid=t1.sa_logiscompid and t4.siteid=t1.siteid",
+                "kd100id");
+        querySQL.addQueryFields("logiscomp_name", "t4.name");
+        querySQL.setWhere("t1.sa_logisticsid=" + sa_logisticsid);
+        querySQL.setWhere("t1.siteid='" + siteid+"'");
+        Rows rows = querySQL.query();
+        return getSucReturnObject().setData(rows.isNotEmpty() ? rows.get(0) : new Row()).toString();
     }
 
     @API(title = "物流单列表", apiversion = R.ID20230720142102.v1.class)

+ 24 - 3
src/custom/restcontroller/webmanage/sale/logistics/LSALogisticsHelper.java

@@ -49,7 +49,8 @@ public class LSALogisticsHelper extends BaseClass {
         insertSQL.setValue("sa_logisticsid", sa_logisticsid);
         insertSQL.setValue("siteid", controller.siteid);
         insertSQL.setValue("status", "新建");
-        insertSQL.setValue("billno", controller.content.getString("billno"));
+        insertSQL.setValue("billno", controller.createBillCode("logisticsbill"));
+        insertSQL.setValue("logisticno", controller.content.getString("logisticno"));
         insertSQL.setValue("sys_enterpriseid", controller.content.getLongValue("sys_enterpriseid"));
         insertSQL.setValue("sa_logiscompid", controller.content.getLong("sa_logiscompid"));
         insertSQL.setValue("billdate", controller.content.getString("billdate"));
@@ -67,7 +68,7 @@ public class LSALogisticsHelper extends BaseClass {
      */
     public static UpdateSQL update(Controller controller, Long sa_logisticsid) throws YosException {
         UpdateSQL updateSQL = SQLFactory.createUpdateSQL(controller, tablename);
-        updateSQL.setValue("billno", controller.content.getString("billno"));
+        updateSQL.setValue("logisticno", controller.content.getString("logisticno"));
         updateSQL.setValue("sa_logiscompid", controller.content.getLong("sa_logiscompid"));
         updateSQL.setValue("billdate", controller.content.getString("billdate"));
         updateSQL.setValue("remarks", controller.content.getStringValue("remarks"));
@@ -147,8 +148,28 @@ public class LSALogisticsHelper extends BaseClass {
      */
     public static boolean isOut(Controller controller, Long st_stockbill_itemsid, BigDecimal qty) throws YosException {
         String sql = "SELECT " + qty + ">qty-transportqty isOut from st_stockbill_items WHERE st_stockbill_itemsid=" + st_stockbill_itemsid + " and siteid='" + controller.siteid + "'";
+        Rows rows = controller.dbConnect.runSqlQuery(sql);
+        if (rows.isNotEmpty()) {
+            return rows.get(0).getBoolean("isOut");
+        } else {
+            return false;
+        }
+
+    }
+
+    /**
+     * 出库单是否存在
+     *
+     * @param controller
+     * @param st_stockbill_itemsid
+     * @return
+     * @throws YosException
+     */
+    public static boolean isStockbillItemsEmpty(Controller controller, Long st_stockbill_itemsid) throws YosException {
+        String sql = "SELECT * from st_stockbill_items WHERE st_stockbill_itemsid=" + st_stockbill_itemsid + " and siteid='" + controller.siteid + "'";
+        Rows rows = controller.dbConnect.runSqlQuery(sql);
+        return rows.isEmpty();
 
-        return controller.dbConnect.runSqlQuery(sql).get(0).getBoolean("isOut");
     }
 
 }