stockbill.java 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389
  1. package restcontroller.crm.agent.stock;
  2. import beans.enterprise_stockbill.enterprise_Stockbill;
  3. import com.alibaba.fastjson2.JSONArray;
  4. import com.alibaba.fastjson2.JSONObject;
  5. import common.Controller;
  6. import common.YosException;
  7. import common.annotation.API;
  8. import common.annotation.Param;
  9. import common.data.*;
  10. import restcontroller.R;
  11. @API(title = "美大CRM_经销商_出入库单")
  12. public class stockbill extends Controller {
  13. public stockbill(JSONObject content) throws YosException {
  14. super(content);
  15. }
  16. @API(title = "美大CRM_经销商_出入库单列表查询", type = API.Type.PageQuery, apiversion = R.ID2026031715354101.v1.class)
  17. public String sys_enterprise_stockbill_querylist() throws YosException {
  18. QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_enterprise_stockbill", "*").setTableAlias("t1");
  19. querySQL.addJoinTable(QuerySQL.JOINTYPE.left, "sys_enterprise_stock", "t2", "t1.sys_enterprise_stockid=t2.sys_enterprise_stockid", "stockno", "stockname");
  20. querySQL.addJoinTable(QuerySQL.JOINTYPE.left, "sa_customers", "t3", "t1.sa_customersid=t3.sa_customersid", "name", "phonenumber", "community");
  21. querySQL.addJoinTable(QuerySQL.JOINTYPE.left, "sa_store", "t4", "t3.sa_storeid=t4.sa_customersid", "storeno", "storename");
  22. querySQL.setSiteid(siteid);
  23. querySQL.setPage(pageSize, pageNumber);
  24. Rows rows = querySQL.query();
  25. return getSucReturnObject().setData(rows).toString();
  26. }
  27. @API(title = "美大CRM_经销商_出入库单新增修改", apiversion = R.ID2026031715451701.v1.class, params = {
  28. @Param(paramname = "sys_enterprise_stockbillid", fieldtype = FieldType.BigInt, remarks = "企业出入库单ID", isrequired = true),
  29. @Param(paramname = "rb", fieldtype = FieldType.Smallint, remarks = "红蓝字", isrequired = true),
  30. @Param(paramname = "type", fieldtype = FieldType.Varchar, remarks = "单据类型", isrequired = true),
  31. @Param(paramname = "typemx", fieldtype = FieldType.Varchar, remarks = "明细分类", isrequired = true),
  32. @Param(paramname = "billdate", fieldtype = FieldType.Varchar, remarks = "单据日期", isrequired = true),
  33. @Param(paramname = "remarks", fieldtype = FieldType.Varchar, remarks = "备注说明"),
  34. @Param(paramname = "sa_custorderid", fieldtype = FieldType.BigInt, remarks = "C端订单ID"),
  35. @Param(paramname = "sys_enterprise_stockid", fieldtype = FieldType.BigInt, remarks = "企业仓库ID", isrequired = true)})
  36. public String sys_enterprise_stockbill_save() throws YosException {
  37. long sys_enterprise_stockbillid = content.getLongValue("sys_enterprise_stockbillid");
  38. boolean rb = content.getBooleanValue("rb");// 红蓝字
  39. String remarks = content.getStringValue("remarks");// 备注说明
  40. long sa_custorderid = content.getLongValue("sa_custorderid");// C端订单ID
  41. String typemx = content.getStringValue("typemx");// 明细分类
  42. String type = content.getStringValue("type");// 单据类型
  43. long sys_enterprise_stockid = content.getLongValue("sys_enterprise_stockid");// 企业仓库ID
  44. String billdate = content.getStringValue("billdate");// 单据日期
  45. if (!getBillStatus(sys_enterprise_stockbillid).equals("新建")) {
  46. return getErrReturnObject().setErrMsg("当前单据不是新建状态,不能修改").toString();
  47. }
  48. SQLDump sqldump = new SQLDump();
  49. if (sys_enterprise_stockbillid <= 0 || SQLFactory.createQuerySQL(this, "sys_enterprise_stockbill", "sys_enterprise_stockbillid").setSiteid(siteid).setUniqueid(sys_enterprise_stockbillid).query().isEmpty()) {
  50. sys_enterprise_stockbillid = createTableID("sys_enterprise_stockbill");
  51. InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sys_enterprise_stockbill");
  52. insertSQL.setValue("billno", createBillCode("enterprise_stockbill"));// 单据编号
  53. insertSQL.setValue("sa_custorderid", sa_custorderid);// C端订单ID
  54. insertSQL.setValue("sa_customersid", getCustomerid(sa_custorderid));// 客户ID
  55. insertSQL.setValue("rb", rb);// 红蓝字
  56. insertSQL.setValue("typemx", typemx);// 明细分类
  57. insertSQL.setValue("type", type);// 单据类型
  58. insertSQL.setValue("billdate", billdate);// 单据日期
  59. insertSQL.setValue("status", "新建");// 状态
  60. insertSQL.setValue("remarks", remarks);// 备注说明
  61. insertSQL.setValue("siteid", siteid);// 站点
  62. insertSQL.setValue("sys_enterprise_stockid", sys_enterprise_stockid);// 企业仓库ID
  63. insertSQL.setValue("sys_enterpriseid", sys_enterpriseid);// 合作企业档案ID
  64. insertSQL.setUniqueid(sys_enterprise_stockbillid);
  65. sqldump.add(insertSQL);
  66. } else {
  67. UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sys_enterprise_stockbill");
  68. updateSQL.setValue("sa_custorderid", sa_custorderid);// C端订单ID
  69. updateSQL.setValue("sa_customersid", getCustomerid(sa_custorderid));// 客户ID
  70. updateSQL.setValue("remarks", remarks);// 备注说明
  71. updateSQL.setValue("typemx", typemx);// 明细分类
  72. updateSQL.setValue("sys_enterprise_stockid", sys_enterprise_stockid);// 企业仓库ID
  73. updateSQL.setValue("billdate", billdate);// 单据日期
  74. updateSQL.setSiteid(siteid);
  75. updateSQL.setUniqueid(sys_enterprise_stockbillid);
  76. sqldump.add(updateSQL);
  77. }
  78. sqldump.commit();
  79. return getSucReturnObject().setData(sys_enterprise_stockbillid).toString();
  80. }
  81. @API(title = "美大CRM_经销商_出入库单删除", apiversion = R.ID2026031715591001.v1.class, params = {
  82. @Param(paramname = "sys_enterprise_stockbillids", fieldtype = FieldType.JSON, remarks = "出入库单ID,[1,2,3]", isrequired = true)})
  83. public String sys_enterprise_stockbill_delete() throws YosException {
  84. JSONArray sys_enterprise_stockbillids = content.getJSONArray("sys_enterprise_stockbillids");
  85. for (int i = 0; i < sys_enterprise_stockbillids.size(); i++) {
  86. long sys_enterprise_stockbillid = sys_enterprise_stockbillids.getLong(i);
  87. if (!getBillStatus(sys_enterprise_stockbillid).equals("新建")) {
  88. return getErrReturnObject().setErrMsg("单据不是新建状态,不能删除").toString();
  89. }
  90. SQLDump sqlDump = new SQLDump();
  91. sqlDump.add(SQLFactory.createDeleteSQL(this, "sys_enterprise_stockbill").setSiteid(siteid).setUniqueid(sys_enterprise_stockbillid));
  92. sqlDump.add(SQLFactory.createDeleteSQL(this, "sys_enterprise_stockbill_items").setSiteid(siteid).setWhere("sys_enterprise_stockbillid", sys_enterprise_stockbillid));
  93. sqlDump.add(SQLFactory.createDeleteSQL(this, "sys_enterprise_stockbill_skus").setSiteid(siteid).setWhere("sys_enterprise_stockbillid", sys_enterprise_stockbillid));
  94. sqlDump.commit();
  95. }
  96. return getSucReturnObject().toString();
  97. }
  98. @API(title = "美大CRM_经销商_出入库单审核反审核", apiversion = R.ID2026031716375401.v1.class, params = {
  99. @Param(paramname = "sys_enterprise_stockbillid", fieldtype = FieldType.BigInt, remarks = "出入库单ID", isrequired = true),
  100. @Param(paramname = "ischeck", fieldtype = FieldType.Boolean, remarks = "1:审核,0:反审核", isrequired = true)})
  101. public String sys_enterprise_stockbill_check() throws YosException {
  102. long sys_enterprise_stockbillid = content.getLongValue("sys_enterprise_stockbillid");
  103. boolean ischeck = content.getBooleanValue("ischeck");
  104. enterprise_Stockbill.check(this, sys_enterprise_stockbillid, ischeck);
  105. return getSucReturnObject().toString();
  106. }
  107. @API(title = "美大CRM_经销商_出入库单红冲", notes = "红冲成功返回红字单据id", apiversion = R.ID2026031808321401.v1.class, params = {
  108. @Param(paramname = "sys_enterprise_stockbillid", fieldtype = FieldType.BigInt, remarks = "出入库单ID", isrequired = true),})
  109. public String sys_enterprise_stockbill_hong() throws YosException {
  110. long sys_enterprise_stockbillid = content.getLongValue("sys_enterprise_stockbillid");
  111. QuerySQL headQuery = SQLFactory.createQuerySQL(this, "sys_enterprise_stockbill");
  112. headQuery.setSiteid(siteid).setUniqueid(sys_enterprise_stockbillid).setWhere("sys_enterpriseid", sys_enterpriseid);
  113. Rows headrows = headQuery.query();
  114. if (headrows.isEmpty()) {
  115. return getErrReturnObject().setErrMsg("单据不存在").toString();
  116. }
  117. if (headrows.get(0).getInteger("rb") == 0) {
  118. return getErrReturnObject().setErrMsg("红字单据不可红冲!").toString();
  119. }
  120. if (headrows.get(0).getString("status").equals("审核")) {
  121. return getErrReturnObject().setErrMsg("非审核状态不可红冲!").toString();
  122. }
  123. QuerySQL detailQuery = SQLFactory.createQuerySQL(this, "sys_enterprise_stockbill_items");
  124. detailQuery.setSiteid(siteid).setWhere("sys_enterprise_stockbillid", sys_enterprise_stockbillid).setWhere("sys_enterpriseid", sys_enterpriseid);
  125. Rows detailrows = detailQuery.query();
  126. SQLDump sqlDump = new SQLDump();
  127. Row row = headrows.get(0);
  128. long hongheadid = createTableID("sys_enterprise_stockbill");
  129. InsertSQL inserthead = row.getInsertSQL("sys_enterprise_stockbill");
  130. inserthead.setValue("billno", createBillCode("enterprise_stockbill"));
  131. inserthead.setValue("rb", 0);
  132. inserthead.setValue("sourceid", sys_enterprise_stockbillid);
  133. inserthead.setValue("sourceobject", "sys_enterprise_stockbill");
  134. inserthead.setValue("status", "新建");
  135. inserthead.setDateValue("billdate");
  136. inserthead.setValue("createby", username);
  137. inserthead.setDateValue("createdate");
  138. inserthead.setValue("changeby", username);
  139. inserthead.setDateValue("changedate");
  140. inserthead.setValue("checkby", null);
  141. inserthead.setValue("checkdate", null);
  142. inserthead.setUniqueid(hongheadid);
  143. sqlDump.add(inserthead);
  144. for (int i = 0; i < detailrows.size(); i++) {
  145. Row detailrow = detailrows.get(i);
  146. long hongdetailid = createTableID("sys_enterprise_stockbill_items");
  147. InsertSQL insertdetail = detailrow.getInsertSQL("sys_enterprise_stockbill_items");
  148. insertdetail.setValue("sourceid", detailrow.getLong("sys_enterprise_stockbill_itemsid"));
  149. insertdetail.setValue("sourceobject", "sys_enterprise_stockbill_items");
  150. insertdetail.setValue("sys_enterprise_stockbillid", hongheadid);
  151. insertdetail.setValue("createby", username);
  152. insertdetail.setDateValue("createdate");
  153. insertdetail.setValue("changeby", username);
  154. insertdetail.setDateValue("changedate");
  155. insertdetail.setValue("hongqty", 0);
  156. insertdetail.setUniqueid(hongdetailid);
  157. sqlDump.add(insertdetail);
  158. QuerySQL codeQuery = SQLFactory.createQuerySQL(this, "sys_enterprise_stockbill_skus");
  159. codeQuery.setWhere("sys_enterprise_stockbill_itemsid", detailrow.getLong("sys_enterprise_stockbill_itemsid")).setWhere("sys_enterpriseid", sys_enterpriseid);
  160. Rows coderows = codeQuery.query();
  161. for (int j = 0; j < coderows.size(); j++) {
  162. Row coderow = coderows.get(j);
  163. InsertSQL insertcode = coderow.getInsertSQL("sys_enterprise_stockbill_items");
  164. insertcode.setValue("sys_enterprise_stockbill_itemsid", hongdetailid);
  165. insertcode.setValue("sys_enterprise_stockbillid", hongheadid);
  166. insertcode.setValue("createby", username);
  167. insertcode.setDateValue("createdate");
  168. sqlDump.add(insertcode);
  169. }
  170. }
  171. sqlDump.commit();
  172. return getSucReturnObject().setData(hongheadid).toString();
  173. }
  174. @API(title = "美大CRM_经销商_出入库单商品明细查询", type = API.Type.Query, apiversion = R.ID2026031715421401.v1.class, params = {
  175. @Param(paramname = "sys_enterprise_stockbillid", fieldtype = FieldType.BigInt, remarks = "出入库单ID", isrequired = true)})
  176. public String sys_enterprise_stockbill_items_querylist() throws YosException {
  177. long sys_enterprise_stockbillid = content.getLong("sys_enterprise_stockbillid");
  178. QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_enterprise_stockbill_items");
  179. querySQL.setWhere("sys_enterprise_stockbillid", sys_enterprise_stockbillid);
  180. querySQL.setSiteid(siteid);
  181. Rows rows = querySQL.query();
  182. return getSucReturnObject().setData(rows).toString();
  183. }
  184. @API(title = "美大CRM_经销商_出入库单商品明细新增修改", apiversion = R.ID2026031716051401.v1.class, params = {
  185. @Param(paramname = "sys_enterprise_stockbillid", fieldtype = FieldType.BigInt, remarks = "企业出入库单ID", isrequired = true),
  186. @Param(paramname = "sys_enterprise_stockbill_itemsid", fieldtype = FieldType.BigInt, remarks = "企业出入库单货品明细", isrequired = true),
  187. @Param(paramname = "sa_custorderitemsid", fieldtype = FieldType.BigInt, remarks = "C端订单商品表ID"),
  188. @Param(paramname = "sys_enterprise_itemid", fieldtype = FieldType.BigInt, remarks = "企业商品档案表ID", isrequired = true),
  189. @Param(paramname = "qty", fieldtype = FieldType.Decimal, remarks = "数量", isrequired = true),
  190. @Param(paramname = "remarks", fieldtype = FieldType.Varchar, remarks = "备注说明")})
  191. public String sys_enterprise_stockbill_items_save() throws YosException {
  192. long sys_enterprise_stockbillid = content.getLong("sys_enterprise_stockbillid");// 企业出入库单ID
  193. long sys_enterprise_stockbill_itemsid = content.getLongValue("sys_enterprise_stockbill_itemsid");
  194. long sa_custorderitemsid = content.getLongValue("sa_custorderitemsid");// C端订单商品表ID
  195. long sys_enterprise_itemid = content.getLongValue("sys_enterprise_itemid");// 企业商品档案表ID
  196. double qty = content.getDoubleValue("qty");// 数量
  197. String remarks = content.getStringValue("remarks");// 备注说明
  198. if (!getBillStatus(sys_enterprise_stockbillid).equals("新建")) {
  199. return getErrReturnObject().setErrMsg("当前单据不是新建状态,不能修改").toString();
  200. }
  201. SQLDump sqldump = new SQLDump();
  202. if (sys_enterprise_stockbill_itemsid <= 0 || SQLFactory.createQuerySQL(this, "sys_enterprise_stockbill_items", "sys_enterprise_stockbill_itemsid").setSiteid(siteid).setUniqueid(sys_enterprise_stockbill_itemsid).query().isEmpty()) {
  203. sys_enterprise_stockbill_itemsid = createTableID("sys_enterprise_stockbill_items");
  204. InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sys_enterprise_stockbill_items");
  205. insertSQL.setValue("siteid", siteid);// 站点
  206. insertSQL.setValue("sys_enterpriseid", sys_enterpriseid);// 合作企业档案ID
  207. insertSQL.setValue("sys_enterprise_stockbillid", sys_enterprise_stockbillid);// 企业出入库单ID
  208. insertSQL.setValue("sa_custorderitemsid", sa_custorderitemsid);// C端订单商品表ID
  209. insertSQL.setValue("sys_enterprise_itemid", sys_enterprise_itemid);// 企业商品档案表ID
  210. insertSQL.setValue("hongqty", 0);// 已红冲数量
  211. insertSQL.setValue("remarks", remarks);// 备注说明
  212. QuerySQL itemQuery = SQLFactory.createQuerySQL(this, "sys_enterprise_item");
  213. itemQuery.setWhere("sys_enterprise_itemid", sys_enterprise_itemid);
  214. itemQuery.setWhere("sys_enterpriseid", sys_enterpriseid);
  215. itemQuery.setWhere("siteid", siteid);
  216. Rows itemrow = itemQuery.query();
  217. if (itemrow.isEmpty()) {
  218. return getErrReturnObject().setErrMsg("商品档案不存在").toString();
  219. }
  220. insertSQL.setValue("itemno", itemrow.get(0).getString("itemno"));// 产品编号
  221. insertSQL.setValue("model", itemrow.get(0).getString("model"));// 型号
  222. insertSQL.setValue("itemname", itemrow.get(0).getString("itemname"));// 产品名称
  223. insertSQL.setValue("skucontrol", itemrow.get(0).getBoolean("skucontrol"));// 是否单品管理
  224. insertSQL.setValue("qty", qty);// 数量
  225. insertSQL.setUniqueid(sys_enterprise_stockbill_itemsid);
  226. sqldump.add(insertSQL);
  227. } else {
  228. UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sys_enterprise_stockbill_items");
  229. updateSQL.setValue("remarks", remarks);// 备注说明
  230. updateSQL.setValue("qty", qty);// 数量
  231. updateSQL.setSiteid(siteid);
  232. updateSQL.setUniqueid(sys_enterprise_stockbill_itemsid);
  233. updateSQL.setWhere("sys_enterprise_stockbillid", sys_enterprise_stockbillid);// 企业出入库单ID
  234. sqldump.add(updateSQL);
  235. }
  236. sqldump.commit();
  237. updateRowno(sys_enterprise_stockbillid);
  238. return getSucReturnObject().setData(sys_enterprise_stockbill_itemsid).toString();
  239. }
  240. @API(title = "美大CRM_经销商_出入库单商品明细删除", apiversion = R.ID2026031716132201.v1.class, params = {
  241. @Param(paramname = "sys_enterprise_stockbillid", fieldtype = FieldType.BigInt, remarks = "出入库单ID", isrequired = true),
  242. @Param(paramname = "sys_enterprise_stockbillids", fieldtype = FieldType.JSON, remarks = "出入库单ID,[1,2,3]", isrequired = true)})
  243. public String sys_enterprise_stockbill_items_delete() throws YosException {
  244. long sys_enterprise_stockbillid = content.getLongValue("sys_enterprise_stockbillid");
  245. JSONArray sys_enterprise_stockbill_itemsids = content.getJSONArray("sys_enterprise_stockbill_itemsids");
  246. if (!getBillStatus(sys_enterprise_stockbillid).equals("新建")) {
  247. return getErrReturnObject().setErrMsg("当前单据不是新建状态,不能删除商品明细").toString();
  248. }
  249. SQLDump sqlDump = new SQLDump();
  250. sqlDump.add(SQLFactory.createDeleteSQL(this, "sys_enterprise_stockbill_items").setSiteid(siteid).setWhere("sys_enterprise_stockbill_itemsid", sys_enterprise_stockbill_itemsids));
  251. sqlDump.add(SQLFactory.createDeleteSQL(this, "sys_enterprise_stockbill_skus").setSiteid(siteid).setWhere("sys_enterprise_stockbill_itemsid", sys_enterprise_stockbill_itemsids));
  252. sqlDump.commit();
  253. updateRowno(sys_enterprise_stockbillid);
  254. return getSucReturnObject().toString();
  255. }
  256. @API(title = "美大CRM_经销商_出入库单商序列号查询", type = API.Type.PageQuery, apiversion = R.ID2026031812265301.v1.class, params = {
  257. @Param(paramname = "sys_enterprise_stockbillid", fieldtype = FieldType.BigInt, remarks = "出入库单ID", isrequired = true),
  258. @Param(paramname = "sys_enterprise_stockbill_itemsid", fieldtype = FieldType.BigInt, remarks = "出入库单商品明细ID", isrequired = true)})
  259. public String sys_enterprise_stockbill_skus_querylist() throws YosException {
  260. long sys_enterprise_stockbillid = content.getLongValue("sys_enterprise_stockbillid");
  261. long sys_enterprise_stockbill_itemsid = content.getLongValue("sys_enterprise_stockbill_itemsid");
  262. QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_enterprise_stockbill_skus");
  263. querySQL.setWhere("sys_enterprise_stockbillid", sys_enterprise_stockbillid);
  264. querySQL.setWhere("sys_enterprise_stockbill_itemsid", sys_enterprise_stockbill_itemsid);
  265. querySQL.setSiteid(siteid);
  266. querySQL.setPage(pageSize, pageNumber);
  267. Rows rows = querySQL.query();
  268. return getSucReturnObject().setData(rows).toString();
  269. }
  270. @API(title = "美大CRM_经销商_出入库单序列号新增", apiversion = R.ID2026031812294301.v1.class, params = {
  271. @Param(paramname = "sku", fieldtype = FieldType.Varchar, remarks = "序列号"),
  272. @Param(paramname = "sys_enterprise_stockbillid", fieldtype = FieldType.BigInt, remarks = "企业出入库单ID"),
  273. @Param(paramname = "sys_enterprise_stockbill_itemsid", fieldtype = FieldType.BigInt, remarks = "企业出入库单货品明细")})
  274. public String sys_enterprise_stockbill_skus_insert() throws YosException {
  275. String sku = content.getStringValue("sku");// 序列号
  276. long sys_enterprise_stockbillid = content.getLongValue("sys_enterprise_stockbillid");// 企业出入库单ID
  277. long sys_enterprise_stockbill_itemsid = content.getLongValue("sys_enterprise_stockbill_itemsid");// 企业出入库单货品明细
  278. if (!getBillStatus(sys_enterprise_stockbillid).equals("新建")) {
  279. return getErrReturnObject().setErrMsg("当前单据不是新建状态,不能添加序列号").toString();
  280. }
  281. Rows skuRows = SQLFactory.createQuerySQL(this, "sa_itemsku").setSiteid(siteid).setWhere("sku", sku).query();
  282. if (skuRows.isEmpty()) {
  283. return getErrReturnObject().setErrCode(1).setErrMsg("序列号" + sku + "不存在").toString();
  284. }
  285. if (skuRows.get(0).getLong("sys_enterpriseid") == 0) {
  286. return getErrReturnObject().setErrCode(3).setErrMsg("序列号" + sku + "当前归属经销商错误,不可录入,请联系美大售后部门").toString();
  287. }
  288. if (skuRows.get(0).getLong("sys_enterpriseid") != sys_enterpriseid) {
  289. return getErrReturnObject().setErrCode(2).setErrMsg("序列号" + sku + "当前归属经销商错误,是否申请调拨?").toString();
  290. }
  291. if (SQLFactory.createQuerySQL(this, "sys_enterprise_stockbill_skus").setWhere("sku", sku).setWhere("sys_enterprise_stockbillid", sys_enterprise_stockbillid).query().isEmpty()) {
  292. InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sys_enterprise_stockbill_skus");
  293. insertSQL.setValue("siteid", siteid);// 站点
  294. insertSQL.setValue("sku", sku);// 序列号
  295. insertSQL.setValue("sys_enterprise_stockbillid", sys_enterprise_stockbillid);// 企业出入库单ID
  296. insertSQL.setValue("sys_enterprise_stockbill_itemsid", sys_enterprise_stockbill_itemsid);// 企业出入库单货品明细
  297. insertSQL.setValue("sys_enterpriseid", sys_enterpriseid);// 合作企业档案ID
  298. insertSQL.insert();
  299. } else {
  300. return getErrReturnObject().setErrMsg("序列号已存在").toString();
  301. }
  302. return getSucReturnObject().toString();
  303. }
  304. @API(title = "美大CRM_经销商_出入库单商序列号删除", apiversion = R.ID2026031812553601.v1.class, params = {})
  305. public String sys_enterprise_stockbill_skus_delete() throws YosException {
  306. long sys_enterprise_stockbillid = content.getLongValue("sys_enterprise_stockbillid");// 企业出入库单ID
  307. long sys_enterprise_stockbill_skusid = content.getLongValue("sys_enterprise_stockbill_skusid");// 企业出入库单ID
  308. if (!getBillStatus(sys_enterprise_stockbillid).equals("新建")) {
  309. return getErrReturnObject().setErrMsg("当前单据不是新建状态,不能删除序列号").toString();
  310. }
  311. DeleteSQL deletesku = SQLFactory.createDeleteSQL(this, "sys_enterprise_stockbill_skus");
  312. deletesku.setWhere("sys_enterprise_stockbillid", sys_enterprise_stockbillid);
  313. deletesku.setUniqueid(sys_enterprise_stockbill_skusid);
  314. deletesku.delete();
  315. return getSucReturnObject().toString();
  316. }
  317. public Long getCustomerid(long sa_custorderid) throws YosException {
  318. if (sa_custorderid == 0) {
  319. return 0L;
  320. }
  321. QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_custorder", "sa_customersid");
  322. querySQL.setSiteid(siteid);
  323. querySQL.setWhere("sys_enterpriseid", sys_enterpriseid);
  324. querySQL.setUniqueid(sa_custorderid);
  325. Rows query = querySQL.query();
  326. return query.isEmpty() ? 0L : query.getRow(0).getLong("sa_customersid");
  327. }
  328. public String getBillStatus(long sys_enterprise_stockbillid) throws YosException {
  329. QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_enterprise_stockbill", "status").setSiteid(siteid).setWhere("sys_enterpriseid", sys_enterpriseid).setUniqueid(sys_enterprise_stockbillid);
  330. Rows rows = querySQL.query();
  331. if (!rows.isEmpty()) {
  332. return rows.get(0).getString("status");
  333. }
  334. return "";
  335. }
  336. /**
  337. * 出入库单行更新
  338. *
  339. * @param sys_enterprise_stockbillid
  340. * @throws YosException
  341. */
  342. public void updateRowno(long sys_enterprise_stockbillid) throws YosException {
  343. QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_enterprise_stockbill_items", "sys_enterprise_stockbill_itemsid").setWhere("sys_enterprise_stockbillid", sys_enterprise_stockbillid);
  344. querySQL.setOrderBy("sys_enterprise_stockbill_itemsid");
  345. SQLDump sqlDump = new SQLDump();
  346. for (int i = 0; i < querySQL.query().size(); i++) {
  347. UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sys_enterprise_stockbill_items");
  348. updateSQL.setSiteid(siteid);
  349. updateSQL.setUniqueid(querySQL.query().get(i).getLong("sys_enterprise_stockbill_itemsid"));
  350. updateSQL.setValue("rowno", i + 1);
  351. sqlDump.add(updateSQL);
  352. }
  353. sqlDump.commit();
  354. }
  355. }