Просмотр исходного кода

bug修复及序列号收集(未测试)

hu 6 месяцев назад
Родитель
Сommit
c1c7ac9bba

+ 5 - 0
src/custom/restcontroller/R.java

@@ -6741,6 +6741,11 @@ public class R {
         public static class v1 {
         public static class v1 {
         }
         }
     }
     }
+
+    public static class ID2025101613261703 {
+        public static class v1 {
+        }
+    }
 }
 }
 
 
 
 

+ 1 - 0
src/custom/restcontroller/sale/order/SQL/订单-查询筛选出的价格.sql

@@ -7,4 +7,5 @@ WHERE sa_orderid in (SELECT t1.sa_orderid
                                         ON t4.contactsid = t1.sa_contractid and t4.siteid = t1.siteid
                                         ON t4.contactsid = t1.sa_contractid and t4.siteid = t1.siteid
                      where t1.siteid = $siteid$
                      where t1.siteid = $siteid$
                        and t1.sys_enterpriseid = $sys_enterpriseid$
                        and t1.sys_enterpriseid = $sys_enterpriseid$
+                       and t1.deleted=0 and ((t1.createflag=1 and t1.status!='н¨') or t1.createflag=0)
                        and $where$)
                        and $where$)

+ 9 - 3
src/custom/restcontroller/webmanage/sale/agentscope/agentscope.java

@@ -11,6 +11,7 @@ import common.annotation.API;
 import common.annotation.CACHEING;
 import common.annotation.CACHEING;
 import common.annotation.CACHEING_CLEAN;
 import common.annotation.CACHEING_CLEAN;
 import common.annotation.cm;
 import common.annotation.cm;
+import common.data.QuerySQL;
 import common.data.Rows;
 import common.data.Rows;
 import common.data.SQLFactory;
 import common.data.SQLFactory;
 import restcontroller.R;
 import restcontroller.R;
@@ -27,9 +28,14 @@ public class agentscope extends Controller {
 	@API(title = "经销商省市县明细查询", apiversion = R.ID2025071615124203.v1.class)
 	@API(title = "经销商省市县明细查询", apiversion = R.ID2025071615124203.v1.class)
     @CACHEING
     @CACHEING
     public String query_areascope() throws YosException {
     public String query_areascope() throws YosException {
-        HashMap<Long, JSONArray> map = new HashMap<>();
-   
-        Rows rows = dbConnect.runSqlQuery("select sa_agents_salescopeid,sa_agentsid,province,city,county from sa_agents_salescope where sa_agentsid='"+content.getString("sa_agentsid")+"' and siteid='" + siteid + "'");
+
+		QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_agents_salescope", "sa_agents_salescopeid", "sa_agentsid","province","city","county");
+		querySQL.setTableAlias("t1");
+		querySQL.setSiteid(siteid);
+		querySQL.setWhere("t1.sa_agentsid",content.getString("sa_agentsid"));
+		querySQL.setPage(pageSize, pageNumber);
+		Rows rows = querySQL.query();
+
 
 
         return getSucReturnObject().setData(rows).toString();
         return getSucReturnObject().setData(rows).toString();
     }
     }

+ 4 - 6
src/custom/restcontroller/webmanage/sale/order/Order.java

@@ -1912,7 +1912,7 @@ public class Order extends Controller {
         for (Long sa_cashbillid : sa_cashbillidList) {
         for (Long sa_cashbillid : sa_cashbillidList) {
             Accountbalance.remindSend(this, pay_enterpriseid, sa_cashbillid);
             Accountbalance.remindSend(this, pay_enterpriseid, sa_cashbillid);
         }
         }
-        Rows agentrows = dbConnect.runSqlQuery("select submitautocheck fom sa_agents where sys_enterpriseid="+sys_enterpriseid);
+        Rows agentrows = dbConnect.runSqlQuery("select submitautocheck from sa_agents where sys_enterpriseid="+sys_enterpriseid);
         if(agentrows.isNotEmpty()){
         if(agentrows.isNotEmpty()){
             if(agentrows.get(0).getBoolean("submitautocheck")){
             if(agentrows.get(0).getBoolean("submitautocheck")){
                 check();
                 check();
@@ -2142,11 +2142,9 @@ public class Order extends Controller {
         }
         }
         Row row = rows.get(0);
         Row row = rows.get(0);
 
 
-        if (dbConnect.runSqlQuery("SELECT 1 from sa_dispatch t1 " +
-                "left join sa_dispatch_items t2 on t1.sa_dispatchid=t2.sa_dispatchid and t1.siteid=t2.siteid " +
-                "left join sa_orderitems t3 on t2.sa_orderitemsid=t3.sa_orderitemsid and t2.siteid=t3.siteid " +
-                "WHERE t1.`status` != '新建' and  t1.siteid='" + siteid + "' and t3.sa_orderid=" + sa_orderid).isNotEmpty()) {
-            return getErrReturnObject().setErrMsg("存在发货单,无法反审核").toString();
+        if (dbConnect.runSqlQuery("SELECT 1 from st_stockbill_items t1 inner join st_stockbill t2 on t2.st_stockbillid=t1.st_stockbillid left join sa_orderitems t3 on t1.sa_orderitemsid=t3.sa_orderitemsid " +
+                "WHERE t2.type = '销售出库' and  t1.siteid='" + siteid + "' and t3.sa_orderid=" + sa_orderid).isNotEmpty()) {
+            return getErrReturnObject().setErrMsg("存在销售出库单,无法反审核").toString();
         }
         }
 
 
 
 

+ 159 - 1
src/custom/restcontroller/webmanage/sale/stockbill/stockbill.java

@@ -15,6 +15,7 @@ import common.annotation.CACHEING;
 import common.annotation.CACHEING_CLEAN;
 import common.annotation.CACHEING_CLEAN;
 import common.data.*;
 import common.data.*;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
+import org.apache.cxf.configuration.security.DNConstraintsType;
 import restcontroller.R;
 import restcontroller.R;
 import restcontroller.webmanage.sale.order.Order;
 import restcontroller.webmanage.sale.order.Order;
 import restcontroller.webmanage.sale.order.OrderItems;
 import restcontroller.webmanage.sale.order.OrderItems;
@@ -23,6 +24,7 @@ import restcontroller.webmanage.sale.sendrepair.sendrepair_pj;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.ArrayList;
+import java.util.Arrays;
 
 
 import static java.time.LocalDate.now;
 import static java.time.LocalDate.now;
 
 
@@ -92,7 +94,7 @@ public class stockbill extends Controller {
             insertSQL.setValue("rb", content.getString("rb"));
             insertSQL.setValue("rb", content.getString("rb"));
             insertSQL.setValue("remarks", remarks);
             insertSQL.setValue("remarks", remarks);
             if (StringUtils.isBlank(billdate)) {
             if (StringUtils.isBlank(billdate)) {
-                insertSQL.setValue("billdate", "current_time");
+                insertSQL.setDateValue("billdate");
             } else {
             } else {
                 insertSQL.setValue("billdate", billdate);
                 insertSQL.setValue("billdate", billdate);
             }
             }
@@ -744,6 +746,151 @@ public class stockbill extends Controller {
         return queryStockbillMain();
         return queryStockbillMain();
     }
     }
 
 
+    @API(title = "序列号收集", apiversion = R.ID2025101613261703.v1.class)
+    public String skuCollect() throws YosException {
+        long stockid=content.getLong("stockid");
+        String sku=content.getString("sku");
+        long st_stockbillid=content.getLong("st_stockbillid");
+        long st_stockbill_itemsid=content.getLong("st_stockbill_itemsid");
+        ArrayList<String> sqllist=new ArrayList<>();
+        String ss = "&&%$&&";
+        if (sku.contains(",")) {
+            ss = ",";
+        } else if (sku.contains(",")) {
+            ss = ",";
+        } else if (sku.contains(" ")) {
+            ss = " ";
+        } else if (sku.contains(";")) {
+            ss = ";";
+        } else if (sku.contains(";")) {
+            ss = ";";
+        }
+        String CODE[] = getDistinctArray(sku.split(ss));
+
+        Rows rows = dbConnect.runSqlQuery("select t1.*,t2.stockno from st_stockbill t1 left join st_stock t2 on t1.stockid=t2.stockid where t1.st_stockbillid ='"
+                + st_stockbillid + "' and  t1.siteid='" + siteid + "'");
+        Rows stockbillitemsrows = dbConnect.runSqlQuery("select t1.*,t2.skucontrol from st_stockbill_items t1 left join plm_item t2 on t1.itemid=t2.itemid where t1.st_stockbillid ='"
+                + st_stockbillid + "' and  siteid='" + siteid + "'");
+        Rows stockbillitemskurows = dbConnect.runSqlQuery("select * from st_stockbill_items_sku where st_stockbillid ='"
+                + st_stockbillid + "' and  siteid='" + siteid + "'");
+        Rows skuRows = dbConnect.runSqlQuery("select t1.*,t2.itemno,t3.stockno from sa_itemsku t1 left join plm_item t2 on t1.itemid=t2.itemid left join st_stock t3 on t1.stockid=t3.st_stockid where t1.siteid='" + siteid + "'");
+        RowsMap skuRowsMap = skuRows.toRowsMap("sku");
+        if (rows.isEmpty()) {
+            return getErrReturnObject().setErrMsg("该出入库单不存在")
+                    .toString();
+        }
+        Row st_stockbill =rows.get(0);
+        for (String FMACHINECODE : CODE) {
+            if (FMACHINECODE.equals("")) {
+                continue;
+            }
+            if (st_stockbill.getString("type").contains("入库")
+                    && FMACHINECODE.startsWith("66")) {
+                return getErrReturnObject().setErrMsg("序列号" + FMACHINECODE
+                        + "不可在DRP手工入库").toString();
+            }
+            if (stockbillitemskurows.size() == stockbillitemsrows.toRowsMap("skucontrol").get("1").sum("qty").intValue()) {
+                return getErrReturnObject().setErrMsg("序列号数量已经满足,不可继续添加").toString();
+            }
+            if (stockbillitemskurows.toRowsMap("sku").containsKey(FMACHINECODE)) {
+                return getErrReturnObject().setErrMsg("序列号" + FMACHINECODE + "重复").toString();
+            }
+            if (!skuRowsMap.containsKey(FMACHINECODE)) {
+                return getErrReturnObject().setErrMsg("序列号" + FMACHINECODE + "不存在").toString();
+            } else {
+                if (skuRowsMap.get(FMACHINECODE).get(0).getString("status").equals("报废")) {
+                    return getErrReturnObject().setErrMsg("该序列号已作废").toString();
+                }
+                long skustockid = skuRowsMap.get(FMACHINECODE).get(0).getLong(
+                        "stockid");
+                long skuitemid = skuRowsMap.get(FMACHINECODE).get(0).getLong("itemid");
+                String skuitemno = skuRowsMap.get(FMACHINECODE).get(0).getString("itemno");
+                if (st_stockbill.getString("status").equals("审核")) {
+                    Rows stockbillskucheckRows=dbConnect.runSqlQuery("select * from stockbillskucheck where itemid="+skuitemid+" and st_stockbillid="+st_stockbillid);
+                    if (!stockbillskucheckRows.isEmpty()) {
+                        return getErrReturnObject().setErrMsg("商品编号"+skuitemno
+                                + stockbillskucheckRows.get(0)
+                                .getString("msg")).toString();
+                    }
+                }
+
+                if (skustockid!=0 && isinstock(st_stockbill.getString("type"),st_stockbill.getString("rb"),true)) {
+                    return getErrReturnObject().setErrMsg("该序列号不可进行入库操作").toString();
+                }
+                if (skustockid==0 && !isinstock(st_stockbill.getString("type"),st_stockbill.getString("rb"),true)) {
+                    return getErrReturnObject().setErrMsg("该序列号不可进行出库操作").toString();
+                }
+                if (skustockid==0 && stockid==0) {
+                    return getErrReturnObject().setErrMsg("请指定仓库").toString();
+                }
+                if (st_stockbill.getString("status").equals("审核")
+                        && !stockbillitemsrows.toRowsMap("skucontrol").get("1").toRowsMap("itemid").containsKey(
+                        skuRowsMap.get(FMACHINECODE).get(0).getString("itemid"))) {
+                    return getErrReturnObject().setErrMsg("序列号所属的商品编号没有包含在单据表体中").toString();
+                }
+                if (st_stockbill.getString("type").equals("生产入库")
+                        &&  skuRowsMap.get("FMACHINECODE").get(0).getString("mono")
+                        .equals("")) {
+                    return getErrReturnObject().setErrMsg("序列号非生产订单生成,不可添加").toString();
+                }
+
+//                if (st_stockbill.getString("type").equals("其他入库")
+//                        && st_stockbill.getString("stockno").equals("101")
+//                        && !getPaoSet(
+//                        "MACHINECODEUSEVIEW",
+//                        "MACHINECODEUSEVIEW",
+//                        "fmachinecode='" + FMACHINECODE
+//                                + "' and ftype like'%出库%'")
+//                        .isEmpty()) {
+//                    ((PaoSet) getThisPaoSet())
+//                            .addWarning(new P2AppException("", "序列号"
+//                                    + FMACHINECODE + "已存在出库记录,请确认该序列号是否有误"));
+//                }
+                String stockno =st_stockbill.getString("type").equals("销售出库")
+                        && (skuRowsMap.get(FMACHINECODE).get(0).getString("stockno")
+                        .equals("103") || skuRowsMap.get(FMACHINECODE).get(0).getString("stockno").equals("109")) ? "101"
+                        : skuRowsMap.get(FMACHINECODE).get(0).getString("stockno");
+                Rows stockrows =dbConnect.runSqlQuery("select *from st_stock where stockno='"+stockno+"'");
+
+                InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "st_stockbill_items_sku");
+                long st_stockbill_items_skuid =  createTableID("st_stockbill_items_sku");
+                insertSQL.setUniqueid(st_stockbill_items_skuid);
+                insertSQL.setSiteid(siteid);
+                if(stockrows.isNotEmpty()){
+                    skustockid=stockrows.get(0).getLong("stockid");
+                }
+                if(stockid==0){
+                    skustockid=st_stockbill.getLong("stockid");
+                }
+                insertSQL.setValue("stockid", skustockid);
+                insertSQL.setValue("itemid",skuitemid);
+                insertSQL.setValue("sku",FMACHINECODE);
+                insertSQL.setValue("st_stockbillid",st_stockbillid);
+                insertSQL.setValue("st_stockbill_itemsid",st_stockbill_itemsid);
+                sqllist.add(insertSQL.getSQL());
+                if (st_stockbill.getString("status").equals("审核")) {
+                    if (isinstock(st_stockbill.getString("type"),st_stockbill.getString("rb"),true)) {
+                        sqllist.add("update sa_itemsku set stockid="+skustockid+" where sku='"+FMACHINECODE+"'");
+                        if (st_stockbill.getString("type").equals("销售出库")) {
+                            sqllist.add("update sa_itemsku set sa_agentsid=0 where sku='"+FMACHINECODE+"'");
+                        }
+                    } else {
+                        sqllist.add("update sa_itemsku set stockid=0 where sku='"+FMACHINECODE+"'");
+                        if (st_stockbill.getString("type").equals("销售出库")) {
+                            sqllist.add("update sa_itemsku set sa_agentsid=(select sa_agentsid from sa_agents where sys_enterpriseid="+st_stockbill.getLong("sys_enterpriseid")+") where sku='"+FMACHINECODE+"'");
+                            if (st_stockbill.getBoolean("iswx")) {
+                                sqllist.add("update sa_itemsku set stockid=(select stockid from st_stock where stockno='00') where sku='"+FMACHINECODE+"'");
+                            }
+                        }
+                    }
+                }
+            }
+
+        }
+        dbConnect.runSqlUpdate(sqllist);
+        return getSucReturnObject().toString();
+    }
+
 
 
     @API(title = "更新站点信息详情详情", apiversion = R.ID20230720143503.v1.class)
     @API(title = "更新站点信息详情详情", apiversion = R.ID20230720143503.v1.class)
     public String updateParameterSiteInfo() throws YosException {
     public String updateParameterSiteInfo() throws YosException {
@@ -939,4 +1086,15 @@ public class stockbill extends Controller {
         }
         }
         return sqllist;
         return sqllist;
     }
     }
+
+    public String[] getDistinctArray(String[] arrays) {
+        ArrayList<String> a = new ArrayList<String>();
+        for (String array : arrays) {
+            if (!a.contains(array)) {
+                a.add(array);
+            }
+        }
+        int size = a.size();
+        return (String[]) a.toArray(new String[size]);
+    }
 }
 }

+ 2 - 2
src/resources/application.yaml

@@ -9,7 +9,7 @@ system:
   db:
   db:
     driver: "com.mysql.cj.jdbc.Driver"
     driver: "com.mysql.cj.jdbc.Driver"
     username: "root"
     username: "root"
-    password: "root"
-    url: "jdbc:mysql://127.0.0.1:2206/mdyos"
+    password: "123456"
+    url: "jdbc:mysql://127.0.0.1:3306/yos3"
     #url: jdbc:mysql://host.docker.internal:3306/yos3
     #url: jdbc:mysql://host.docker.internal:3306/yos3
     servicename: "mysql80"
     servicename: "mysql80"