|
|
@@ -1,5 +1,6 @@
|
|
|
package restcontroller.crm.agent.stock;
|
|
|
|
|
|
+import beans.enterprise.Enterprise;
|
|
|
import beans.enterprise_stockbill.enterprise_Stockbill;
|
|
|
import com.alibaba.fastjson2.JSONArray;
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
@@ -18,8 +19,7 @@ public class stockbill extends Controller {
|
|
|
}
|
|
|
|
|
|
@API(title = "美大CRM_经销商_出入库单列表查询", type = API.Type.PageQuery, apiversion = R.ID2026031715354101.v1.class, params = {
|
|
|
- @Param(paramname = "type", fieldtype = FieldType.Varchar, remarks = "单据类型")
|
|
|
- })
|
|
|
+ @Param(paramname = "type", fieldtype = FieldType.Varchar, remarks = "单据类型")})
|
|
|
public String sys_enterprise_stockbill_querylist() throws YosException {
|
|
|
JSONArray types = content.getJSONArray("type");
|
|
|
QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_enterprise_stockbill", "*").setTableAlias("t1");
|
|
|
@@ -313,13 +313,15 @@ public class stockbill extends Controller {
|
|
|
|
|
|
@API(title = "美大CRM_经销商_出入库单商序列号查询", type = API.Type.PageQuery, apiversion = R.ID2026031812265301.v1.class, params = {
|
|
|
@Param(paramname = "sys_enterprise_stockbillid", fieldtype = FieldType.BigInt, remarks = "出入库单ID", isrequired = true),
|
|
|
- @Param(paramname = "sys_enterprise_stockbill_itemsid", fieldtype = FieldType.BigInt, remarks = "出入库单商品明细ID", isrequired = true)})
|
|
|
+ @Param(paramname = "sys_enterprise_stockbill_itemsid", fieldtype = FieldType.BigInt, remarks = "出入库单商品明细ID,不传或传0时,查询单据所有序列号", isrequired = false)})
|
|
|
public String sys_enterprise_stockbill_skus_querylist() throws YosException {
|
|
|
long sys_enterprise_stockbillid = content.getLongValue("sys_enterprise_stockbillid");
|
|
|
long sys_enterprise_stockbill_itemsid = content.getLongValue("sys_enterprise_stockbill_itemsid");
|
|
|
QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_enterprise_stockbill_skus");
|
|
|
querySQL.setWhere("sys_enterprise_stockbillid", sys_enterprise_stockbillid);
|
|
|
- querySQL.setWhere("sys_enterprise_stockbill_itemsid", sys_enterprise_stockbill_itemsid);
|
|
|
+ if (sys_enterprise_stockbill_itemsid > 0) {
|
|
|
+ querySQL.setWhere("sys_enterprise_stockbill_itemsid", sys_enterprise_stockbill_itemsid);
|
|
|
+ }
|
|
|
querySQL.setSiteid(siteid);
|
|
|
querySQL.setPage(pageSize, pageNumber);
|
|
|
Rows rows = querySQL.query();
|
|
|
@@ -327,18 +329,25 @@ public class stockbill extends Controller {
|
|
|
}
|
|
|
|
|
|
@API(title = "美大CRM_经销商_出入库单序列号新增", apiversion = R.ID2026031812294301.v1.class, params = {
|
|
|
- @Param(paramname = "sku", fieldtype = FieldType.Varchar, remarks = "序列号"),
|
|
|
- @Param(paramname = "sys_enterprise_stockbillid", fieldtype = FieldType.BigInt, remarks = "企业出入库单ID"),
|
|
|
- @Param(paramname = "sys_enterprise_stockbill_itemsid", fieldtype = FieldType.BigInt, remarks = "企业出入库单货品明细")})
|
|
|
+ @Param(paramname = "sku", fieldtype = FieldType.Varchar, remarks = "序列号", isrequired = true),
|
|
|
+ @Param(paramname = "sys_enterprise_stockbillid", fieldtype = FieldType.BigInt, remarks = "企业出入库单ID", isrequired = true),
|
|
|
+ @Param(paramname = "sys_enterprise_stockbill_itemsid", fieldtype = FieldType.BigInt, remarks = "企业出入库单货品明细id,不传时,自动生成新的或匹配已有的表体ID")})
|
|
|
public String sys_enterprise_stockbill_skus_insert() throws YosException {
|
|
|
- String sku = content.getStringValue("sku");// 序列号
|
|
|
long sys_enterprise_stockbillid = content.getLongValue("sys_enterprise_stockbillid");// 企业出入库单ID
|
|
|
long sys_enterprise_stockbill_itemsid = content.getLongValue("sys_enterprise_stockbill_itemsid");// 企业出入库单货品明细
|
|
|
+ String sku = content.getStringValue("sku");// 序列号
|
|
|
|
|
|
- if (!getBillStatus(sys_enterprise_stockbillid).equals("新建")) {
|
|
|
+ QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_enterprise_stockbill", "status", "sa_custorderid").setSiteid(siteid).setWhere("sys_enterpriseid", sys_enterpriseid).setUniqueid(sys_enterprise_stockbillid);
|
|
|
+ Rows rows = querySQL.query();
|
|
|
+ if (rows.isEmpty()) {
|
|
|
+ return getErrReturnObject().setErrMsg("当前单据不存在").toString();
|
|
|
+ }
|
|
|
+ if (!rows.get(0).getString("status").equals("新建")) {
|
|
|
return getErrReturnObject().setErrMsg("当前单据不是新建状态,不能添加序列号").toString();
|
|
|
}
|
|
|
-
|
|
|
+ if (sku.isBlank()) {
|
|
|
+ return getErrReturnObject().setErrMsg("序列号不能为空").toString();
|
|
|
+ }
|
|
|
Rows skuRows = SQLFactory.createQuerySQL(this, "sa_itemsku").setSiteid(siteid).setWhere("sku", sku).query();
|
|
|
if (skuRows.isEmpty()) {
|
|
|
return getErrReturnObject().setErrCode(1).setErrMsg("序列号" + sku + "不存在").toString();
|
|
|
@@ -351,13 +360,67 @@ public class stockbill extends Controller {
|
|
|
}
|
|
|
|
|
|
if (SQLFactory.createQuerySQL(this, "sys_enterprise_stockbill_skus").setWhere("sku", sku).setWhere("sys_enterprise_stockbillid", sys_enterprise_stockbillid).query().isEmpty()) {
|
|
|
+ SQLList sqlList = new SQLList();
|
|
|
+ long sys_enterprise_itemid = 0;
|
|
|
+ if (sys_enterprise_stockbill_itemsid == 0) {//如果没有指定货品明细ID,则自动生成
|
|
|
+ long itemid = skuRows.get(0).getLong("itemid");
|
|
|
+ Enterprise.addSiteItems(dbConnect, siteid, sys_enterpriseid, itemid);//判断并生成商品档案
|
|
|
+ QuerySQL sys_enterprise_itemQuery = SQLFactory.createQuerySQL(dbConnect, "sys_enterprise_item", "sys_enterprise_itemid");
|
|
|
+ sys_enterprise_itemQuery.setSiteid(siteid);
|
|
|
+ sys_enterprise_itemQuery.setWhere("sys_enterpriseid", sys_enterpriseid);
|
|
|
+ sys_enterprise_itemQuery.setWhere("itemid", itemid);
|
|
|
+ Rows itemrow = sys_enterprise_itemQuery.query();
|
|
|
+ if (itemrow.isEmpty()) {
|
|
|
+ return getErrReturnObject().setErrMsg("商品档案不存在").toString();
|
|
|
+ } else {
|
|
|
+ sys_enterprise_itemid = itemrow.get(0).getLong("sys_enterprise_itemid");
|
|
|
+ }
|
|
|
+ Rows stockbill_itemsRows = SQLFactory.createQuerySQL(this, "sys_enterprise_stockbill_items", "sys_enterprise_stockbill_itemsid").setWhere("sys_enterprise_stockbillid", sys_enterprise_stockbillid).setWhere("sys_enterprise_itemid", sys_enterprise_itemid).query();
|
|
|
+ if (stockbill_itemsRows.isEmpty()) {//如果出入库表体不存在,则新增
|
|
|
+ long sa_custorderid = rows.get(0).getLong("sa_custorderid");
|
|
|
+ long sa_custorderitemsid = 0;
|
|
|
+ if (sa_custorderid > 0) {
|
|
|
+ Rows custorderitemsRows = SQLFactory.createQuerySQL(this, "sa_custorderitems", "sa_custorderitemsid").setWhere("sa_custorderid", sa_custorderid).setWhere("sys_enterprise_itemid", sys_enterprise_itemid).query();
|
|
|
+ if (custorderitemsRows.isEmpty()) {
|
|
|
+ throw new YosException("当前出库的客户订单不存在此商品");
|
|
|
+ }
|
|
|
+ sa_custorderitemsid = custorderitemsRows.get(0).getLong("sa_custorderitemsid");
|
|
|
+ }
|
|
|
+ sys_enterprise_stockbill_itemsid = createTableID("sys_enterprise_stockbill_items");
|
|
|
+ InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sys_enterprise_stockbill_items");
|
|
|
+ insertSQL.setValue("siteid", siteid);// 站点
|
|
|
+ insertSQL.setValue("sys_enterpriseid", sys_enterpriseid);// 合作企业档案ID
|
|
|
+ insertSQL.setValue("sys_enterprise_stockbillid", sys_enterprise_stockbillid);// 企业出入库单ID
|
|
|
+ insertSQL.setValue("sa_custorderitemsid", sa_custorderitemsid);// C端订单商品表ID
|
|
|
+ insertSQL.setValue("sys_enterprise_itemid", sys_enterprise_itemid);// 企业商品档案表ID
|
|
|
+ insertSQL.setValue("hongqty", 0);// 已红冲数量
|
|
|
+ insertSQL.setValue("remarks", "");// 备注说明
|
|
|
+ insertSQL.setValue("itemno", itemrow.get(0).getString("itemno"));// 产品编号
|
|
|
+ insertSQL.setValue("model", itemrow.get(0).getString("model"));// 型号
|
|
|
+ insertSQL.setValue("itemname", itemrow.get(0).getString("itemname"));// 产品名称
|
|
|
+ insertSQL.setValue("skucontrol", true);// 是否单品管理
|
|
|
+ insertSQL.setValue("qty", 1);// 数量
|
|
|
+ insertSQL.setUniqueid(sys_enterprise_stockbill_itemsid);
|
|
|
+ sqlList.add(insertSQL);
|
|
|
+ } else {
|
|
|
+ sys_enterprise_stockbill_itemsid = stockbill_itemsRows.get(0).getLong("sys_enterprise_stockbill_itemsid");
|
|
|
+ UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sys_enterprise_stockbill_items");
|
|
|
+ updateSQL.addValue("qty", 1);// 数量+1
|
|
|
+ updateSQL.setSiteid(siteid);
|
|
|
+ updateSQL.setUniqueid(sys_enterprise_stockbill_itemsid);
|
|
|
+ updateSQL.setWhere("sys_enterprise_stockbillid", sys_enterprise_stockbillid);// 企业出入库单ID
|
|
|
+ sqlList.add(updateSQL);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sys_enterprise_stockbill_skus");
|
|
|
insertSQL.setValue("siteid", siteid);// 站点
|
|
|
insertSQL.setValue("sku", sku);// 序列号
|
|
|
insertSQL.setValue("sys_enterprise_stockbillid", sys_enterprise_stockbillid);// 企业出入库单ID
|
|
|
insertSQL.setValue("sys_enterprise_stockbill_itemsid", sys_enterprise_stockbill_itemsid);// 企业出入库单货品明细
|
|
|
insertSQL.setValue("sys_enterpriseid", sys_enterpriseid);// 合作企业档案ID
|
|
|
- insertSQL.insert();
|
|
|
+ sqlList.add(insertSQL);
|
|
|
+ sqlList.commit();
|
|
|
} else {
|
|
|
return getErrReturnObject().setErrMsg("序列号已存在").toString();
|
|
|
}
|