stockbill.java 25 KB

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