Forráskód Böngészése

新增调拨申请

shenjingwei 3 hete
szülő
commit
46364e7553

+ 60 - 3
src/custom/beans/enterprise/Enterprise.java

@@ -4,9 +4,7 @@ import beans.itemclass.ItemClass;
 import common.BaseClass;
 import common.Controller;
 import common.YosException;
-import common.data.Row;
-import common.data.Rows;
-import common.data.SQLFactory;
+import common.data.*;
 import common.data.db.DBConnect;
 
 import java.math.BigDecimal;
@@ -211,4 +209,63 @@ public class Enterprise extends BaseClass {
         }
     }
 
+    public static void addSiteItems(DBConnect dbConnect, String siteid, long sys_enterpriseid, Long... itemids) throws YosException {
+        QuerySQL sys_enterprise_itemQuery = SQLFactory.createQuerySQL(dbConnect, "sys_enterprise_item", "itemid");
+        sys_enterprise_itemQuery.setSiteid(siteid);
+        sys_enterprise_itemQuery.setWhere("sys_enterpriseid", sys_enterpriseid);
+        sys_enterprise_itemQuery.setWhere("itemid", itemids);
+        ArrayList<Long> sys_enterprise_itemids = sys_enterprise_itemQuery.query().toArrayList("itemid", new ArrayList<>());
+
+        QuerySQL item_query = SQLFactory.createQuerySQL(dbConnect, "plm_item");
+        item_query.setSiteid(siteid);
+        item_query.setWhere("itemid", itemids);
+        RowsMap plm_itemrowsMap = item_query.query().toRowsMap("itemid");
+
+        SQLDump sqlDump = new SQLDump();
+        for (Long itemid : itemids) {
+            if (!sys_enterprise_itemids.contains(itemid) && plm_itemrowsMap.containsKey(String.valueOf(itemid))) {
+                Row itemrow = plm_itemrowsMap.get(String.valueOf(itemid)).getRow(0);
+                double packageqty = itemrow.getDouble("packageqty", 1);
+                double safeqty = itemrow.getDouble("safeqty");
+                String remarks = itemrow.getString("remarks");
+                boolean ismodule = itemrow.getBoolean("ismodule");
+                int warrantyday = itemrow.getInteger("warrantyday");
+                String barcode = itemrow.getString("barcode");
+                boolean skucontrol = itemrow.getBoolean("skucontrol");
+                long grossweight = itemrow.getLong("grossweight");
+                long weight = itemrow.getLong("weight");
+                long unitid = itemrow.getLong("unitid");
+                String itemno = itemrow.getString("itemno");
+                String color = itemrow.getString("color");
+                String spec = itemrow.getString("spec");
+                String model = itemrow.getString("model");
+                String itemname = itemrow.getString("itemname");
+
+                InsertSQL insertSQL = SQLFactory.createInsertSQL(dbConnect, "sys_enterprise_item");
+                insertSQL.setValue("siteid", siteid);// 站点
+                insertSQL.setValue("itemid", itemid);// 货品档案表ID
+                insertSQL.setValue("packing_qty", packageqty);// 包装数量
+                insertSQL.setValue("safeqty", safeqty);// 安全库存
+                insertSQL.setValue("remarks", remarks);// 说明
+                insertSQL.setValue("ismodule", ismodule);// 是否配件
+                insertSQL.setValue("warrantyday", warrantyday);// 保修期(年)
+                insertSQL.setValue("barcode", barcode);// 商品条形码
+                insertSQL.setValue("skucontrol", skucontrol);// 是否单品管理
+                insertSQL.setValue("grossweight", grossweight);// 毛重(g)
+                insertSQL.setValue("weight", weight);// 净重(g)
+                insertSQL.setValue("unitid", unitid);// 计量单位
+                insertSQL.setValue("itemno", itemno);// 产品编号
+                insertSQL.setValue("prodtype", 1);// 商品类型
+                insertSQL.setValue("color", color);// 颜色
+                insertSQL.setValue("spec", spec);// 尺寸
+                insertSQL.setValue("model", model);// 型号
+                insertSQL.setValue("itemname", itemname);// 产品名称
+                insertSQL.setValue("isonsale", 1);//默认上架
+                insertSQL.setValue("sys_enterpriseid", sys_enterpriseid);// 合作企业档案ID
+                sqlDump.add(insertSQL);
+            }
+        }
+        sqlDump.commit();
+    }
+
 }

+ 8 - 0
src/custom/beans/enterprise_stockbill/bills/BasicBill.java

@@ -9,6 +9,7 @@ import common.data.db.DBConnect;
 import org.apache.commons.lang.StringUtils;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
 
 public abstract class BasicBill {
     Controller controller;
@@ -126,8 +127,12 @@ public abstract class BasicBill {
             if (!status.equals("审核")) {
                 throw new YosException("单号为:【" + billno + "】的出入库单为非审核状态,无法反审核");
             }
+            if (billRow.getBoolean("issystem")) {
+                throw new YosException("系统生成单据不能反审核");
+            }
         }
         RowsMap itemskuRowsMap = SQLFactory.createQuerySQL(dbConnect, "sa_itemsku", "sys_enterpriseid", "sys_enterprise_stockid", "stockid", "sku").setWhere("sku", codeRows.toArrayList("sku")).query().toRowsMap("sku");
+        ArrayList<String> warrantycardsList = SQLFactory.createQuerySQL(dbConnect, "sa_warrantycard", "sku").setWhere("sku", codeRows.toArrayList("sku")).setWhere("isvoid", 0).query().toArrayList("sku");
 
         for (Row codeRow : codeRows) {
             String sku = codeRow.getString("sku");
@@ -137,6 +142,9 @@ public abstract class BasicBill {
             if (itemskuRowsMap.get(sku).get(0).getLong("sys_enterpriseid") != sys_enterpriseid) {
                 throw new YosException("序列号【" + sku + "】非当前经销商所属");
             }
+            if (warrantycardsList.contains(sku)) {
+                throw new YosException("序列号【" + sku + "】已存在保修卡!");
+            }
             if (!isInStock(ischeck) && itemskuRowsMap.get(sku).get(0).getLong("stockid") != getAgentStockID()) {
                 throw new YosException("序列号【" + sku + "】不在经销商仓库中");
             }

+ 3 - 0
src/custom/beans/enterprise_stockbill/enterprise_Stockbill.java

@@ -4,7 +4,9 @@ import beans.enterprise_stockbill.bills.BasicBill;
 import common.BaseClass;
 import common.Controller;
 import common.YosException;
+import common.data.InsertSQL;
 import common.data.SQLDump;
+import common.data.SQLFactory;
 
 public class enterprise_Stockbill extends BaseClass {
     public static SQLDump getCheckSql(Controller controller, long sys_enterprise_stockbillid, boolean ischeck) throws YosException {
@@ -16,4 +18,5 @@ public class enterprise_Stockbill extends BaseClass {
     public static void check(Controller controller, long sys_enterprise_stockbillid, boolean ischeck) throws YosException {
         getCheckSql(controller, sys_enterprise_stockbillid, ischeck).commit(controller);
     }
+
 }

+ 4 - 7
src/custom/objectregister/sys_enterprise_sku_dbapply.java

@@ -13,18 +13,12 @@ public class sys_enterprise_sku_dbapply extends YosObject {
     @TableCol(title = "申请调入企业ID", column_type = YosObject.ColumnType.bigint)
     public Long sys_enterpriseid_in = 0L;
 
-    @TableCol(title = "申请调入企业仓库ID", column_type = YosObject.ColumnType.bigint)
-    public Long sys_enterprise_stockid_in = 0L;
-
     @TableCol(title = "入库单ID", column_type = YosObject.ColumnType.bigint)
     public Long stockbillid_in = 0L;
 
     @TableCol(title = "申请调出企业ID", column_type = YosObject.ColumnType.bigint)
     public Long sys_enterpriseid_out = 0L;
 
-    @TableCol(title = "申请调出企业仓库ID", column_type = YosObject.ColumnType.bigint)
-    public Long sys_enterprise_stockid_out = 0L;
-
     @TableCol(title = "出库单ID", column_type = YosObject.ColumnType.bigint)
     public Long stockbillid_out = 0L;
 
@@ -34,7 +28,7 @@ public class sys_enterprise_sku_dbapply extends YosObject {
     @TableCol(title = "备注", column_type = YosObject.ColumnType.varchar, numeric_precision = 500)
     public String remarks;
 
-    @TableCol(title = "申请状态", column_type = YosObject.ColumnType.datetime)
+    @TableCol(title = "申请状态", column_type = YosObject.ColumnType.varchar)
     public String status;
 
     @TableCol(title = "申请时间", column_type = YosObject.ColumnType.datetime)
@@ -51,4 +45,7 @@ public class sys_enterprise_sku_dbapply extends YosObject {
 
     @TableCol(title = "站点ID", column_type = YosObject.ColumnType.varchar)
     public String siteid;
+
+    @TableCol(title = "退回原因", column_type = YosObject.ColumnType.varchar, numeric_precision = 500)
+    public String returnreason;
 }

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

@@ -7607,6 +7607,51 @@ public class R {
         public static class v1 {
         }
     }
+
+    public static class ID2026041315223501 {
+        public static class v1 {
+        }
+    }
+
+    public static class ID2026041315314201 {
+        public static class v1 {
+        }
+    }
+
+    public static class ID2026041315375201 {
+        public static class v1 {
+        }
+    }
+
+    public static class ID2026041315412601 {
+        public static class v1 {
+        }
+    }
+
+    public static class ID2026041315423401 {
+        public static class v1 {
+        }
+    }
+
+    public static class ID2026041315465101 {
+        public static class v1 {
+        }
+    }
+
+    public static class ID2026041408405801 {
+        public static class v1 {
+        }
+    }
+
+    public static class ID2026041409045601 {
+        public static class v1 {
+        }
+    }
+
+    public static class ID2026041409262901 {
+        public static class v1 {
+        }
+    }
 }
 
 

+ 2 - 60
src/custom/restcontroller/crm/agent/item/item.java

@@ -1,5 +1,6 @@
 package restcontroller.crm.agent.item;
 
+import beans.enterprise.Enterprise;
 import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import common.Controller;
@@ -9,8 +10,6 @@ import common.annotation.Param;
 import common.data.*;
 import restcontroller.R;
 
-import java.util.ArrayList;
-
 @API(title = "美大CRM_经销商_商品管理")
 public class item extends Controller {
 
@@ -46,64 +45,7 @@ public class item extends Controller {
             @Param(paramname = "itemids", fieldtype = FieldType.JSON, remarks = "货品档案表ID,[1,2,3]", isrequired = true)})
     public String sys_enterprise_item_addfromsite() throws YosException {
         JSONArray itemids = content.getJSONArray("itemids");// 货品档案表ID
-
-        QuerySQL sys_enterprise_itemQuery = SQLFactory.createQuerySQL(this, "sys_enterprise_item", "itemid");
-        sys_enterprise_itemQuery.setSiteid(siteid);
-        sys_enterprise_itemQuery.setWhere("sys_enterpriseid", sys_enterpriseid);
-        sys_enterprise_itemQuery.setWhere("itemid", itemids);
-        ArrayList<Long> sys_enterprise_itemids = sys_enterprise_itemQuery.query().toArrayList("itemid", new ArrayList<>());
-
-        QuerySQL item_query = SQLFactory.createQuerySQL(this, "plm_item");
-        item_query.setSiteid(siteid);
-        item_query.setWhere("itemid", itemids);
-        RowsMap plm_itemrowsMap = item_query.query().toRowsMap("itemid");
-
-        SQLDump sqlDump = new SQLDump();
-        for (int i = 0; i < itemids.size(); i++) {
-            long itemid = itemids.getLongValue(i);
-            if (!sys_enterprise_itemids.contains(itemid) && plm_itemrowsMap.containsKey(String.valueOf(itemid))) {
-                Row itemrow = plm_itemrowsMap.get(String.valueOf(itemid)).getRow(0);
-                double packageqty = itemrow.getDouble("packageqty", 1);
-                double safeqty = itemrow.getDouble("safeqty");
-                String remarks = itemrow.getString("remarks");
-                boolean ismodule = itemrow.getBoolean("ismodule");
-                int warrantyday = itemrow.getInteger("warrantyday");
-                String barcode = itemrow.getString("barcode");
-                boolean skucontrol = itemrow.getBoolean("skucontrol");
-                long grossweight = itemrow.getLong("grossweight");
-                long weight = itemrow.getLong("weight");
-                long unitid = itemrow.getLong("unitid");
-                String itemno = itemrow.getString("itemno");
-                String color = itemrow.getString("color");
-                String spec = itemrow.getString("spec");
-                String model = itemrow.getString("model");
-                String itemname = itemrow.getString("itemname");
-
-                InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sys_enterprise_item");
-                insertSQL.setValue("siteid", siteid);// 站点
-                insertSQL.setValue("itemid", itemid);// 货品档案表ID
-                insertSQL.setValue("packing_qty", packageqty);// 包装数量
-                insertSQL.setValue("safeqty", safeqty);// 安全库存
-                insertSQL.setValue("remarks", remarks);// 说明
-                insertSQL.setValue("ismodule", ismodule);// 是否配件
-                insertSQL.setValue("warrantyday", warrantyday);// 保修期(年)
-                insertSQL.setValue("barcode", barcode);// 商品条形码
-                insertSQL.setValue("skucontrol", skucontrol);// 是否单品管理
-                insertSQL.setValue("grossweight", grossweight);// 毛重(g)
-                insertSQL.setValue("weight", weight);// 净重(g)
-                insertSQL.setValue("unitid", unitid);// 计量单位
-                insertSQL.setValue("itemno", itemno);// 产品编号
-                insertSQL.setValue("prodtype", 1);// 商品类型
-                insertSQL.setValue("color", color);// 颜色
-                insertSQL.setValue("spec", spec);// 尺寸
-                insertSQL.setValue("model", model);// 型号
-                insertSQL.setValue("itemname", itemname);// 产品名称
-                insertSQL.setValue("isonsale", 1);//默认上架
-                insertSQL.setValue("sys_enterpriseid", sys_enterpriseid);// 合作企业档案ID
-                sqlDump.add(insertSQL);
-            }
-        }
-        sqlDump.commit();
+        Enterprise.addSiteItems(dbConnect, siteid, sys_enterpriseid, itemids.toArray(new Long[0]));
         return getSucReturnObject().toString();
     }
 

+ 101 - 0
src/custom/restcontroller/crm/agent/stock/skudbapply.java

@@ -4,6 +4,9 @@ import com.alibaba.fastjson2.JSONObject;
 import common.Controller;
 import common.YosException;
 import common.annotation.API;
+import common.annotation.Param;
+import common.data.*;
+import restcontroller.R;
 
 @API(title = "美大CRM_经销商_序列号调拨申请")
 public class skudbapply extends Controller {
@@ -11,4 +14,102 @@ public class skudbapply extends Controller {
         super(content);
     }
 
+    @API(title = "美大CRM_经销商_序列号调拨申请列表", type = API.Type.PageQuery, apiversion = R.ID2026041315223501.v1.class)
+    public String sys_enterprise_sku_dbapply_querylist() throws YosException {
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_enterprise_sku_dbapply", getTableColumnNameArrays("sys_enterprise_sku_dbapply")).setTableAlias("t1");
+        querySQL.addJoinTable(QuerySQL.JOINTYPE.left, "sys_enterprise", "t2", "t1.sys_enterpriseid_in=t2.sys_enterpriseid", "t2.enterprisename as enterprisename_in");
+        querySQL.addJoinTable(QuerySQL.JOINTYPE.left, "sys_enterprise", "t3", "t1.sys_enterpriseid_out=t3.sys_enterpriseid", "t3.enterprisename as enterprisename_out");
+        querySQL.addJoinTable(QuerySQL.JOINTYPE.left, "sa_itemsku", "t4", "t1.sku=t4.sku");
+        querySQL.addJoinTable(QuerySQL.JOINTYPE.left, "sa_itemsku", "t5", "t4.itemid=t5.itemid", "itemno", "itemname", "model", "spec");
+
+        querySQL.setWhere("sys_enterpriseid_in=" + sys_enterpriseid + " or sys_enterpriseid_out=" + sys_enterpriseid);
+        querySQL.setSiteid(siteid);
+        querySQL.setPage(pageSize, pageNumber);
+        Rows rows = querySQL.query();
+        return getSucReturnObject().setData(rows).toString();
+    }
+
+    @API(title = "企业序列号调拨申请_新增", apiversion = R.ID2026041315314201.v1.class, params = {
+            @Param(paramname = "sys_enterprise_sku_dbapplyid", fieldtype = FieldType.BigInt, remarks = "数据ID", isrequired = true),
+            @Param(paramname = "sys_enterpriseid_in", fieldtype = FieldType.BigInt, remarks = "申请调入企业ID"),
+            @Param(paramname = "sys_enterpriseid_out", fieldtype = FieldType.BigInt, remarks = "申请调出企业ID"),
+            @Param(paramname = "sku", fieldtype = FieldType.Varchar, remarks = "申请调拨序列号"),
+            @Param(paramname = "remarks", fieldtype = FieldType.Varchar, remarks = "备注"),
+            @Param(paramname = "autosubmit", fieldtype = FieldType.Boolean, remarks = "是否自动提交")})
+    public String sys_enterprise_sku_dbapply_insert() throws YosException {
+        long sys_enterprise_sku_dbapplyid = content.getLongValue("sys_enterprise_sku_dbapplyid");
+        long sys_enterpriseid_out = content.getLongValue("sys_enterpriseid_out");// 申请调出企业ID
+        long sys_enterpriseid_in = content.getLongValue("sys_enterpriseid_in");// 申请调入企业ID
+        String sku = content.getStringValue("sku");// 申请调拨序列号
+        String remarks = content.getStringValue("remarks");// 备注
+        boolean autosubmit = content.getBooleanValue("autosubmit");
+        Rows skuRows = SQLFactory.createQuerySQL(this, "sa_itemsku", "sys_enterpriseid", "sys_enterprise_stockid").setSiteid(siteid).setWhere("sku", sku).query();
+        if (skuRows.isEmpty()) {
+            return getErrReturnObject().setErrMsg("序列号" + sku + "不存在").toString();
+        }
+        SQLDump sqldump = new SQLDump();
+        if (sys_enterprise_sku_dbapplyid <= 0 || SQLFactory.createQuerySQL(this, "sys_enterprise_sku_dbapply", "sys_enterprise_sku_dbapplyid").setSiteid(siteid).setUniqueid(sys_enterprise_sku_dbapplyid).query().isEmpty()) {
+            InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sys_enterprise_sku_dbapply");
+            insertSQL.setValue("billno", createBillCode("skudbapply"));// 单据编号
+            if (sys_enterpriseid_out == 0) {
+                sys_enterpriseid_out = skuRows.getRow(0).getLong("sys_enterpriseid");
+            }
+            insertSQL.setValue("sys_enterpriseid_out", sys_enterpriseid_out);// 申请调出企业ID
+            insertSQL.setValue("sys_enterpriseid_in", sys_enterpriseid_in);// 申请调入企业ID
+            insertSQL.setValue("sku", sku);// 申请调拨序列号
+            insertSQL.setValue("remarks", remarks);// 备注
+            insertSQL.setValue("status", autosubmit ? "提交" : "新建");// 申请状态
+            insertSQL.setValue("siteid", siteid);// 站点ID
+            sqldump.add(insertSQL);
+        }
+        sqldump.commit();
+        return getSucReturnObject().toString();
+    }
+
+    @API(title = "企业序列号调拨申请_提交", apiversion = R.ID2026041409045601.v1.class, params = {
+            @Param(paramname = "sys_enterprise_sku_dbapplyid", fieldtype = FieldType.BigInt, remarks = "数据ID", isrequired = true),
+            @Param(paramname = "issubmit", fieldtype = FieldType.Boolean, remarks = "是否提交,传false表撤回")})
+    public String sys_enterprise_sku_dbapply_modify() throws YosException {
+        long sys_enterprise_sku_dbapplyid = content.getLong("sys_enterprise_sku_dbapplyid");
+        boolean issubmit = content.getBooleanValue("issubmit", true);// 状态
+        Row row = SQLFactory.getRow(this, "sys_enterprise_sku_dbapply", sys_enterprise_sku_dbapplyid);
+        if (row.isEmpty()) {
+            return getErrReturnObject().setErrMsg("数据不存在").toString();
+        }
+        String status = row.getString("status");
+        if (issubmit && !status.equals("新建")) {
+            return getErrReturnObject().setErrMsg("非新建状态无法提交").toString();
+        }
+        if (!issubmit && !status.equals("提交")) {
+            return getErrReturnObject().setErrMsg("非提交状态无法撤回").toString();
+        }
+        SQLDump sqldump = new SQLDump();
+        UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sys_enterprise_sku_dbapply");
+        updateSQL.setValue("status", issubmit ? "提交" : "新建");// 状态
+        updateSQL.setSiteid(siteid);
+        updateSQL.setUniqueid(sys_enterprise_sku_dbapplyid);
+        updateSQL.setWhere("sys_enterpriseid", sys_enterpriseid);
+        sqldump.add(updateSQL);
+        sqldump.commit();
+        return getSucReturnObject().toString();
+    }
+
+
+    @API(title = "企业序列号调拨申请_删除", apiversion = R.ID2026041315375201.v1.class, params = {
+            @Param(paramname = "sys_enterprise_sku_dbapplyid", fieldtype = FieldType.BigInt, remarks = "数据ID", isrequired = true)
+    })
+    public String sys_enterprise_sku_dbapply_delete() throws YosException {
+        long sys_enterprise_sku_dbapplyid = content.getLongValue("sys_enterprise_sku_dbapplyid");
+        Row dbapplyRow = SQLFactory.getRow(this, "sys_enterprise_sku_dbapply", sys_enterprise_sku_dbapplyid);
+        if (dbapplyRow.isEmpty()) {
+            return getErrReturnObject().setErrMsg("数据不存在").toString();
+        }
+        if (!dbapplyRow.getString("status").equals("提交")) {
+            return getErrReturnObject().setErrMsg("该状态无法删除").toString();
+        }
+        SQLFactory.createDeleteSQL(this, "sys_enterprise_sku_dbapply").setUniqueid(sys_enterprise_sku_dbapplyid).delete();
+        return getSucReturnObject().toString();
+    }
+
+
 }

+ 1 - 2
src/custom/restcontroller/crm/agent/stock/stockbill.java

@@ -72,7 +72,6 @@ public class stockbill extends Controller {
             UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sys_enterprise_stockbill");
             updateSQL.setValue("sa_custorderid", sa_custorderid);// C端订单ID
             updateSQL.setValue("sa_customersid", getCustomerid(sa_custorderid));// 客户ID
-            updateSQL.setValue("rb", rb);// 红蓝字
             updateSQL.setValue("remarks", remarks);// 备注说明
             updateSQL.setValue("typemx", typemx);// 明细分类
             updateSQL.setValue("sys_enterprise_stockid", sys_enterprise_stockid);// 企业仓库ID
@@ -92,7 +91,7 @@ public class stockbill extends Controller {
         for (int i = 0; i < sys_enterprise_stockbillids.size(); i++) {
             long sys_enterprise_stockbillid = sys_enterprise_stockbillids.getLong(i);
             if (!getBillStatus(sys_enterprise_stockbillid).equals("新建")) {
-                return getErrReturnObject().setErrMsg("单据不是新建状态,不能修改").toString();
+                return getErrReturnObject().setErrMsg("单据不是新建状态,不能删除").toString();
             }
             SQLDump sqlDump = new SQLDump();
             sqlDump.add(SQLFactory.createDeleteSQL(this, "sys_enterprise_stockbill").setSiteid(siteid).setUniqueid(sys_enterprise_stockbillid));

+ 256 - 0
src/custom/restcontroller/crm/manage/stock/skudbapply.java

@@ -0,0 +1,256 @@
+package restcontroller.crm.manage.stock;
+
+import beans.enterprise.Enterprise;
+import com.alibaba.fastjson2.JSONObject;
+import common.Controller;
+import common.YosException;
+import common.annotation.API;
+import common.annotation.Param;
+import common.data.*;
+import restcontroller.R;
+
+@API(title = "美大CRM_总部_序列号调拨申请")
+public class skudbapply extends Controller {
+    public skudbapply(JSONObject content) throws YosException {
+        super(content);
+    }
+
+    @API(title = "美大CRM_总部_序列号调拨申请列表", type = API.Type.PageQuery, apiversion = R.ID2026041315412601.v1.class)
+    public String sys_enterprise_sku_dbapply_querylist() throws YosException {
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_enterprise_sku_dbapply", getTableColumnNameArrays("sys_enterprise_sku_dbapply")).setTableAlias("t1");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t1.sys_enterpriseid_in=t2.sys_enterpriseid", "t2.enterprisename as enterprisename_in");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t3", "t1.sys_enterpriseid_out=t3.sys_enterpriseid", "t3.enterprisename as enterprisename_out");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_itemsku", "t4", "t1.sku=t4.sku");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_itemsku", "t5", "t4.itemid=t5.itemid", "itemno", "itemname", "model", "spec");
+        querySQL.setSiteid(siteid);
+        querySQL.setPage(pageSize, pageNumber);
+        Rows rows = querySQL.query();
+        return getSucReturnObject().setData(rows).toString();
+    }
+
+    @API(title = "美大CRM_总部_序列号调拨申请修改", apiversion = R.ID2026041315423401.v1.class, params = {
+            @Param(paramname = "sys_enterprise_sku_dbapplyid", fieldtype = FieldType.BigInt, remarks = "数据ID", isrequired = true),
+            @Param(paramname = "sys_enterpriseid_in", fieldtype = FieldType.BigInt, remarks = "申请调入企业ID"),
+            @Param(paramname = "sys_enterpriseid_out", fieldtype = FieldType.BigInt, remarks = "申请调出企业ID"),
+            @Param(paramname = "sku", fieldtype = FieldType.Varchar, remarks = "申请调拨序列号"),
+            @Param(paramname = "remarks", fieldtype = FieldType.Varchar, remarks = "备注")})
+    public String sys_enterprise_sku_dbapply_modify() throws YosException {
+        long sys_enterprise_sku_dbapplyid = content.getLong("sys_enterprise_sku_dbapplyid");
+        long sys_enterpriseid_in = content.getLongValue("sys_enterpriseid_in");// 申请调入企业ID
+        long sys_enterpriseid_out = content.getLongValue("sys_enterpriseid_out");// 申请调出企业ID
+        String sku = content.getStringValue("sku");// 申请调拨序列号
+        String remarks = content.getStringValue("remarks");// 备注
+        Row row = SQLFactory.getRow(this, "sys_enterprise_sku_dbapply", sys_enterprise_sku_dbapplyid);
+        if (row.isEmpty()) {
+            return getErrReturnObject().setErrMsg("数据不存在").toString();
+        }
+
+        if (!row.getString("status").equals("提交")) {
+            return getErrReturnObject().setErrMsg("当前状态不可修改").toString();
+        }
+
+        SQLDump sqldump = new SQLDump();
+        UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sys_enterprise_sku_dbapply");
+        updateSQL.setValue("sys_enterpriseid_in", sys_enterpriseid_in);// 申请调入企业ID
+        updateSQL.setValue("sys_enterpriseid_out", sys_enterpriseid_out);// 申请调出企业ID
+        updateSQL.setValue("sku", sku);// 申请调拨序列号
+        updateSQL.setValue("remarks", remarks);// 备注
+        updateSQL.setSiteid(siteid);
+        updateSQL.setUniqueid(sys_enterprise_sku_dbapplyid);
+        sqldump.add(updateSQL);
+        sqldump.commit();
+        return getSucReturnObject().toString();
+    }
+
+    @API(title = "企业序列号调拨申请_修改", apiversion = R.ID2026041409262901.v1.class, params = {
+            @Param(paramname = "sys_enterprise_sku_dbapplyid", fieldtype = FieldType.BigInt, remarks = "数据ID", isrequired = true),
+            @Param(paramname = "returnreason", fieldtype = FieldType.Varchar, remarks = "退回原因")})
+    public String sys_enterprise_sku_dbapply_return() throws YosException {
+        long sys_enterprise_sku_dbapplyid = content.getLong("sys_enterprise_sku_dbapplyid");
+        String returnreason = content.getStringValue("returnreason");// 退回原因
+        SQLDump sqldump = new SQLDump();
+        UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sys_enterprise_sku_dbapply");
+        updateSQL.setValue("status", "新建");// 状态
+        updateSQL.setValue("returnreason", returnreason);// 状态
+        updateSQL.setSiteid(siteid);
+        updateSQL.setUniqueid(sys_enterprise_sku_dbapplyid);
+        sqldump.add(updateSQL);
+        sqldump.commit();
+        return getSucReturnObject().toString();
+    }
+
+
+    @API(title = "美大CRM_总部_序列号调拨申请审核", apiversion = R.ID2026041315465101.v1.class, params = {
+            @Param(paramname = "sys_enterprise_sku_dbapplyid", fieldtype = FieldType.BigInt, remarks = "数据ID", isrequired = true)})
+    public String sys_enterprise_sku_dbapply_check() throws YosException {
+        long sys_enterprise_sku_dbapplyid = content.getLong("sys_enterprise_sku_dbapplyid");
+        Row row = SQLFactory.getRow(this, "sys_enterprise_sku_dbapply", sys_enterprise_sku_dbapplyid);
+        if (row.isEmpty()) {
+            return getErrReturnObject().setErrMsg("数据不存在").toString();
+        }
+        if (!row.getString("status").equals("提交")) {
+            return getErrReturnObject().setErrMsg("当前状态不可审核").toString();
+        }
+        long sys_enterpriseid_in = row.getLong("sys_enterpriseid_in");
+        long sys_enterpriseid_out = row.getLong("sys_enterpriseid_out");
+        String sku = row.getString("sku");
+        if (sku.isEmpty()) {
+            return getErrReturnObject().setErrMsg("申请调拨序列号为空").toString();
+        }
+        Rows skuRows = SQLFactory.createQuerySQL(this, "sa_itemsku", "sys_enterpriseid", "sys_enterprise_stockid", "itemid").setSiteid(siteid).setWhere("sku", sku).query();
+        if (skuRows.isEmpty()) {
+            return getErrReturnObject().setErrMsg("申请调拨序列号不存在").toString();
+        }
+        if (skuRows.get(0).getLong("sys_enterpriseid") != sys_enterpriseid_out) {
+            return getErrReturnObject().setErrMsg("申请调拨序列号当前归属经销商错误").toString();
+        }
+        if (sys_enterpriseid_in == 0) {
+            return getErrReturnObject().setErrMsg("申请调入企业为空").toString();
+        }
+        long itemid = skuRows.get(0).getLong("itemid");
+        long sys_enterprise_stockid_out = skuRows.get(0).getLong("sys_enterprise_stockid");//调出仓库
+        Rows stockRows = SQLFactory.createQuerySQL(this, "sys_enterprise_stock").setWhere("issystem", 1).query();
+        if (stockRows.isEmpty()) {
+            return getErrReturnObject().setErrMsg("系统没有预设经销商默认仓库").toString();
+        }
+        long sys_enterprise_stockid_in = stockRows.get(0).getLong("sys_enterprise_stockid");//调入仓库
+
+        SQLDump sqldump = new SQLDump();
+        long stockbillid_in = 0;
+        long stockbillid_out = 0;
+        if (sys_enterprise_stockid_out > 0) {//生产出库单
+            Enterprise.addSiteItems(dbConnect, siteid, sys_enterpriseid_out, itemid);
+
+            Rows sys_enterprise_itemRows = SQLFactory.createQuerySQL(this, "sys_enterprise_item").setWhere("sys_enterpriseid", sys_enterpriseid_out).setWhere("itemid", itemid).query();
+            long sys_enterprise_itemid = sys_enterprise_itemRows.get(0).getLong("sys_enterprise_itemid");
+
+            InsertSQL stockbillSQL = SQLFactory.createInsertSQL(this, "sys_enterprise_stockbill");
+            stockbillSQL.setValue("siteid", siteid);// 站点
+            stockbillSQL.setValue("sys_enterpriseid", sys_enterpriseid_out);// 合作企业档案ID
+            stockbillSQL.setValue("sys_enterprise_stockid", sys_enterprise_stockid_out);// 企业仓库ID
+            stockbillSQL.setValue("billno", createBillCode("enterprise_stockbill"));// 单据编号
+            stockbillSQL.setValue("rb", 1);// 红蓝字
+            stockbillSQL.setValue("type", "其他出库");// 单据类型
+            stockbillSQL.setValue("typemx", "调拨出库");// 明细分类
+            stockbillSQL.setDateValue("billdate");// 单据日期
+            stockbillSQL.setValue("checkby", username);// 审核日期
+            stockbillSQL.setDateValue("checkdate");// 审核日期
+            stockbillSQL.setValue("status", "审核");// 状态
+            stockbillSQL.setValue("issystem", 1);// 是否系统生成
+            stockbillSQL.setValue("remarks", "调拨单号:" + row.getString("billno"));// 备注说明
+
+            stockbillid_out = stockbillSQL.getUniqueid();
+
+            InsertSQL stockbill_itemsSQL = SQLFactory.createInsertSQL(this, "sys_enterprise_stockbill_items");
+            stockbill_itemsSQL.setValue("siteid", siteid);// 站点
+            stockbill_itemsSQL.setValue("sys_enterpriseid", sys_enterpriseid_out);// 合作企业档案ID
+            stockbill_itemsSQL.setValue("sys_enterprise_stockbillid", stockbillid_out);// 企业出入库单ID
+            stockbill_itemsSQL.setValue("sys_enterprise_itemid", sys_enterprise_itemid);// 企业商品档案表ID
+            stockbill_itemsSQL.setValue("itemno", sys_enterprise_itemRows.get(0).getString("itemno"));// 产品编号
+            stockbill_itemsSQL.setValue("model", sys_enterprise_itemRows.get(0).getString("model"));// 型号
+            stockbill_itemsSQL.setValue("itemname", sys_enterprise_itemRows.get(0).getString("itemname"));// 产品名称
+            stockbill_itemsSQL.setValue("skucontrol", 1);// 是否单品管理
+            stockbill_itemsSQL.setValue("qty", 1);// 数量
+
+            InsertSQL stockbill_skusSQL = SQLFactory.createInsertSQL(this, "sys_enterprise_stockbill_skus");
+            stockbill_skusSQL.setValue("siteid", siteid);// 站点
+            stockbill_skusSQL.setValue("sku", sku);// 序列号
+            stockbill_skusSQL.setValue("sys_enterprise_stockbillid", stockbillid_out);// 企业出入库单ID
+            stockbill_skusSQL.setValue("sys_enterprise_stockbill_itemsid", stockbill_itemsSQL.getUniqueid());// 企业出入库单货品明细
+            stockbill_skusSQL.setValue("sys_enterpriseid", sys_enterpriseid_out);// 合作企业档案ID
+
+
+            UpdateSQL invbalUpdate = SQLFactory.createUpdateSQL(this, "sys_enterprise_invbal");
+            invbalUpdate.addValue("qty", -1);
+            invbalUpdate.setWhere("sys_enterpriseid", sys_enterpriseid_out);
+            invbalUpdate.setWhere("sys_enterprise_stockid", sys_enterprise_stockid_out);
+            invbalUpdate.setWhere("sys_enterprise_itemid", sys_enterprise_itemid);
+
+            sqldump.add(stockbillSQL);
+            sqldump.add(stockbill_itemsSQL);
+            sqldump.add(stockbill_skusSQL);
+            sqldump.add(invbalUpdate);
+        }
+        //调入
+        {
+            Enterprise.addSiteItems(dbConnect, siteid, sys_enterpriseid_in, itemid);
+            Rows sys_enterprise_itemRows = SQLFactory.createQuerySQL(this, "sys_enterprise_item").setWhere("sys_enterpriseid", sys_enterpriseid_in).setWhere("itemid", itemid).query();
+            long sys_enterprise_itemid = sys_enterprise_itemRows.get(0).getLong("sys_enterprise_itemid");
+
+            InsertSQL stockbillSQL = SQLFactory.createInsertSQL(this, "sys_enterprise_stockbill");
+            stockbillSQL.setValue("siteid", siteid);// 站点
+            stockbillSQL.setValue("sys_enterpriseid", sys_enterpriseid_in);// 合作企业档案ID
+            stockbillSQL.setValue("sys_enterprise_stockid", sys_enterprise_stockid_in);// 企业仓库ID
+            stockbillSQL.setValue("billno", createBillCode("enterprise_stockbill"));// 单据编号
+            stockbillSQL.setValue("rb", 1);// 红蓝字
+            stockbillSQL.setValue("type", "其他入库");// 单据类型
+            stockbillSQL.setValue("typemx", "调拨入库");// 明细分类
+            stockbillSQL.setDateValue("billdate");// 单据日期
+            stockbillSQL.setValue("checkby", username);// 审核日期
+            stockbillSQL.setDateValue("checkdate");// 审核日期
+            stockbillSQL.setValue("status", "审核");// 状态
+            stockbillSQL.setValue("issystem", 1);// 是否系统生成
+            stockbillSQL.setValue("remarks", "调拨单号:" + row.getString("billno"));// 备注说明
+            stockbillid_in = stockbillSQL.getUniqueid();
+
+            InsertSQL stockbill_itemsSQL = SQLFactory.createInsertSQL(this, "sys_enterprise_stockbill_items");
+            stockbill_itemsSQL.setValue("siteid", siteid);// 站点
+            stockbill_itemsSQL.setValue("sys_enterpriseid", sys_enterpriseid_in);// 合作企业档案ID
+            stockbill_itemsSQL.setValue("sys_enterprise_stockbillid", stockbillid_in);// 企业出入库单ID
+            stockbill_itemsSQL.setValue("sys_enterprise_itemid", sys_enterprise_itemid);// 企业商品档案表ID
+            stockbill_itemsSQL.setValue("itemno", sys_enterprise_itemRows.get(0).getString("itemno"));// 产品编号
+            stockbill_itemsSQL.setValue("model", sys_enterprise_itemRows.get(0).getString("model"));// 型号
+            stockbill_itemsSQL.setValue("itemname", sys_enterprise_itemRows.get(0).getString("itemname"));// 产品名称
+            stockbill_itemsSQL.setValue("skucontrol", 1);// 是否单品管理
+            stockbill_itemsSQL.setValue("qty", 1);// 数量
+
+            InsertSQL stockbill_skusSQL = SQLFactory.createInsertSQL(this, "sys_enterprise_stockbill_skus");
+            stockbill_skusSQL.setValue("siteid", siteid);// 站点
+            stockbill_skusSQL.setValue("sku", sku);// 序列号
+            stockbill_skusSQL.setValue("sys_enterprise_stockbillid", stockbillid_in);// 企业出入库单ID
+            stockbill_skusSQL.setValue("sys_enterprise_stockbill_itemsid", stockbill_itemsSQL.getUniqueid());// 企业出入库单货品明细
+            stockbill_skusSQL.setValue("sys_enterpriseid", sys_enterpriseid_in);// 合作企业档案ID
+
+
+            InsertSQL invbalInsert = SQLFactory.createInsertSQL(this, "sys_enterprise_invbal");
+            invbalInsert.setSiteid(siteid);
+            invbalInsert.setValue("qty", 0);
+            invbalInsert.setValue("sys_enterpriseid", sys_enterpriseid_in);
+            invbalInsert.setValue("sys_enterprise_stockid", sys_enterprise_stockid_in);
+            invbalInsert.setValue("sys_enterprise_itemid", sys_enterprise_itemid);
+            invbalInsert.setWhere("not exists(select * from sys_enterprise_invbal where siteid='" + siteid + "' " + "and sys_enterpriseid=" + sys_enterpriseid + " " + "and sys_enterprise_stockid=" + sys_enterprise_stockid_in + " " + "and sys_enterprise_itemid=" + sys_enterprise_itemid + ")");
+
+            UpdateSQL invbalUpdate = SQLFactory.createUpdateSQL(this, "sys_enterprise_invbal");
+            invbalUpdate.addValue("qty", 1);
+            invbalUpdate.setWhere("sys_enterpriseid", sys_enterpriseid_in);
+            invbalUpdate.setWhere("sys_enterprise_stockid", sys_enterprise_stockid_in);
+            invbalUpdate.setWhere("sys_enterprise_itemid", sys_enterprise_itemid);
+
+            sqldump.add(stockbillSQL);
+            sqldump.add(stockbill_itemsSQL);
+            sqldump.add(stockbill_skusSQL);
+            sqldump.add(invbalInsert);
+            sqldump.add(invbalUpdate);
+        }
+        UpdateSQL skuUpdate = SQLFactory.createUpdateSQL(this, "sys_enterprise_sku");
+        skuUpdate.setValue("sys_enterpriseid", sys_enterpriseid_in);
+        skuUpdate.setValue("sys_enterprise_stockid", sys_enterprise_stockid_in);
+        skuUpdate.setSiteid(siteid);
+        skuUpdate.setWhere("sku", sku);
+        sqldump.add(skuUpdate);
+
+        UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sys_enterprise_sku_dbapply");
+        updateSQL.setValue("status", "审核");
+        updateSQL.setValue("checkby", username);
+        updateSQL.setValue("stockbillid_out", stockbillid_out);
+        updateSQL.setValue("stockbillid_in", stockbillid_in);
+        updateSQL.setDateValue("checkdate");
+        updateSQL.setSiteid(siteid);
+        updateSQL.setUniqueid(sys_enterprise_sku_dbapplyid);
+        sqldump.add(updateSQL);
+        sqldump.commit();
+        return getSucReturnObject().toString();
+    }
+
+
+}

+ 4 - 1
src/custom/restcontroller/crm/manage/store/Store.java

@@ -52,7 +52,7 @@ public class Store extends Controller {
         return getSucReturnObject().toString();
     }
 
-    @API(title = "美大CRM_总部_门店人员列表查询", type = API.Type.PageQuery, apiversion = R.ID2026031013135801.v1.class, params = {
+    @API(title = "美大CRM_总部_门店人员列表查询", type = API.Type.PageQuery, apiversion = R.ID2026041408405801.v1.class, params = {
             @Param(paramname = "sa_storeid", fieldtype = FieldType.BigInt, remarks = "门店ID", isrequired = true)
     })
     public String sa_store_hr_querylist() throws YosException {
@@ -65,4 +65,7 @@ public class Store extends Controller {
         Rows rows = querySQL.query();
         return getSucReturnObject().setData(rows).toString();
     }
+
+
+
 }