creditbilldetail.java 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. package restcontroller.sale.creditbill;
  2. import beans.data.BatchDeleteErr;
  3. import com.alibaba.fastjson.JSONArray;
  4. import com.alibaba.fastjson.JSONObject;
  5. import common.Controller;
  6. import common.YosException;
  7. import common.annotation.API;
  8. import common.annotation.CACHEING;
  9. import common.annotation.CACHEING_CLEAN;
  10. import common.data.QuerySQL;
  11. import common.data.Rows;
  12. import common.data.SQLFactory;
  13. import restcontroller.R;
  14. import java.util.ArrayList;
  15. @API(title = "信用额度调整单表体")
  16. public class creditbilldetail extends Controller {
  17. public creditbilldetail(JSONObject arg0) throws YosException {
  18. super(arg0);
  19. // TODO Auto-generated constructor stub
  20. }
  21. @API(title = "信用额度调整单表体新增更新", apiversion = R.ID20230104100203.v1.class,intervaltime = 200)
  22. @CACHEING_CLEAN(apiversions = {R.ID20221008164203.v1.class, R.ID20230104100903.v1.class})
  23. public String insertormodify_creditbilldetail() throws YosException {
  24. Long sa_creditbillid = content.getLong("sa_creditbillid");
  25. JSONArray enterpriseinfos = content.getJSONArray("enterpriseinfos");
  26. ArrayList<String> sqlList = new ArrayList<>();
  27. Rows rowscount = dbConnect.runSqlQuery(
  28. "select status,sa_creditbillid from sa_creditbill where sa_creditbillid=" + sa_creditbillid);
  29. if (!rowscount.isEmpty()) {
  30. if (!rowscount.get(0).getString("status").equals("新建")) {
  31. return getErrReturnObject().setErrMsg("非新建状态的信用额度调整单无法新增修改").toString();
  32. }
  33. }
  34. int i = 0;
  35. long[] sa_creditbilldetailid = createTableID("sa_creditbilldetail", enterpriseinfos.size());
  36. for (Object obj : enterpriseinfos) {
  37. JSONObject enterpriseinfo = (JSONObject) obj;
  38. if (enterpriseinfo.getLong("sa_creditbilldetailid") <= 0 || dbConnect.runSqlQuery(
  39. "select sa_creditbilldetailid from sa_creditbilldetail where sa_creditbilldetailid="
  40. + enterpriseinfo.getLong("sa_creditbilldetailid"))
  41. .isEmpty()) {
  42. SQLFactory saleFactory = new SQLFactory(this, "信用额度调整单表体新增");
  43. saleFactory.addParameter("siteid", siteid);
  44. saleFactory.addParameter("sa_creditbilldetailid", sa_creditbilldetailid[i]);
  45. saleFactory.addParameter("sa_creditbillid", sa_creditbillid);
  46. saleFactory.addParameter("sys_enterpriseid", enterpriseinfo.getLong("sys_enterpriseid"));
  47. saleFactory.addParameter("sa_accountclassid", enterpriseinfo.getLong("sa_accountclassid"));
  48. saleFactory.addParameter("creditquota", enterpriseinfo.getBigDecimal("creditquota"));
  49. saleFactory.addParameter("oldcreditquota", enterpriseinfo.getBigDecimal("oldcreditquota"));
  50. saleFactory.addParameter("remarks", enterpriseinfo.getStringValue("remarks"));
  51. sqlList.add(saleFactory.getSQL());
  52. i++;
  53. } else {
  54. SQLFactory saleFactory = new SQLFactory(this, "信用额度调整单表体更新");
  55. saleFactory.addParameter("sa_creditbilldetailid", enterpriseinfo.getLong("sa_creditbilldetailid"));
  56. saleFactory.addParameter("siteid", siteid);
  57. saleFactory.addParameter("sys_enterpriseid", enterpriseinfo.getLong("sys_enterpriseid"));
  58. saleFactory.addParameter("sa_accountclassid", enterpriseinfo.getLong("sa_accountclassid"));
  59. saleFactory.addParameter("creditquota", enterpriseinfo.getBigDecimal("creditquota"));
  60. saleFactory.addParameter("remarks", enterpriseinfo.getStringValue("remarks"));
  61. sqlList.add(saleFactory.getSQL());
  62. }
  63. }
  64. dbConnect.runSqlUpdate(sqlList);
  65. return queryCreditbilldetailList();
  66. }
  67. @API(title = "信用额度调整单表体列表查询", apiversion = R.ID20230104100903.v1.class)
  68. @CACHEING
  69. public String queryCreditbilldetailList() throws YosException {
  70. /*
  71. * 过滤条件设置
  72. */
  73. StringBuffer where = new StringBuffer(" 1=1 ");
  74. if (content.containsKey("where")) {
  75. JSONObject whereObject = content.getJSONObject("where");
  76. if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
  77. where.append(" and(");
  78. where.append("t2.enterprisename like'%").append(whereObject.getString("condition")).append("%' ");
  79. where.append("or t2.phonenumber like'%").append(whereObject.getString("condition")).append("%' ");
  80. where.append("or t2.abbreviation like'%").append(whereObject.getString("condition")).append("%' ");
  81. where.append("or t3.accountname like'%").append(whereObject.getString("condition")).append("%' ");
  82. where.append("or t3.accountno like'%").append(whereObject.getString("condition")).append("%' ");
  83. where.append(")");
  84. }
  85. }
  86. Long sa_creditbillid = content.getLong("sa_creditbillid");
  87. // SQLFactory sqlFactory = new SQLFactory(this, "信用额度调整单表体查询", pageSize, pageNumber, pageSorting);
  88. // sqlFactory.addParameter_SQL("where", where);
  89. // sqlFactory.addParameter("sa_creditbillid", sa_creditbillid);
  90. // sqlFactory.addParameter("siteid", siteid);
  91. // Rows rows = dbConnect.runSqlQuery(sqlFactory);
  92. QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_creditbilldetail", "sa_creditbilldetailid", "sa_creditbillid",
  93. "sys_enterpriseid","sa_accountclassid","creditquota","oldcreditquota");
  94. querySQL.setTableAlias("t1");
  95. querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t1.sys_enterpriseid=t2.sys_enterpriseid and t1.siteid=t2.siteid","enterprisename","abbreviation","phonenumber");
  96. querySQL.addJoinTable(JOINTYPE.left, "sa_accountclass", "t3", "t1.sa_accountclassid=t3.sa_accountclassid and t1.siteid=t3.siteid and t3.isused=1","accountno","accountname");
  97. querySQL.setSiteid(siteid);
  98. querySQL.setWhere("t1.sa_creditbillid",sa_creditbillid);
  99. querySQL.setWhere(where);
  100. querySQL.setPage(pageSize, pageNumber);
  101. Rows rows = querySQL.query();
  102. return getSucReturnObject().setData(rows).toString();
  103. }
  104. @API(title = "删除明细", apiversion = R.ID20230104101003.v1.class)
  105. @CACHEING_CLEAN(apiversions = {R.ID20221008164203.v1.class, R.ID20230104100903.v1.class})
  106. public String deletemx() throws YosException {
  107. JSONArray sa_creditbilldetailids = content.getJSONArray("sa_creditbilldetailids");
  108. BatchDeleteErr batchDeleteErr = BatchDeleteErr.create(this, sa_creditbilldetailids.size());
  109. for (Object o : sa_creditbilldetailids) {
  110. long sa_creditbilldetailid = Long.parseLong(o.toString());
  111. Rows RowsStatus = dbConnect.runSqlQuery(
  112. "select t1.sa_creditbilldetailid,t2.status,t1.sa_creditbillid from sa_creditbilldetail t1 left join sa_creditbill t2 on t1.sa_creditbillid=t2.sa_creditbillid and t1.siteid=t2.siteid where t1.siteid='"
  113. + siteid + "' and t1.sa_creditbilldetailid='" + sa_creditbilldetailid + "'");
  114. if (RowsStatus.isNotEmpty()) {
  115. if (!RowsStatus.get(0).getString("status").equals("新建")) {
  116. batchDeleteErr.addErr(sa_creditbilldetailid, "非新建状态的信用额度调整单明细无法删除");
  117. continue;
  118. }
  119. }
  120. ArrayList<String> list = new ArrayList<>();
  121. list.add("delete from sa_creditbilldetail where siteid='" + siteid
  122. + "' and sa_creditbilldetailid=" + sa_creditbilldetailid);
  123. dbConnect.runSqlUpdate(list);
  124. }
  125. return batchDeleteErr.getReturnObject().toString();
  126. }
  127. }