enterprisetarget.java 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. package restcontroller.webmanage.sale.salestarget;
  2. import beans.datacontrllog.DataContrlLog;
  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_CLEAN;
  9. import common.annotation.cm;
  10. import common.data.Rows;
  11. import common.data.SQLFactory;
  12. import restcontroller.R;
  13. import java.util.ArrayList;
  14. public class enterprisetarget extends Controller {
  15. /**
  16. * 构造函数
  17. *
  18. * @param content
  19. */
  20. public enterprisetarget(JSONObject content) throws YosException {
  21. super(content);
  22. }
  23. @API(title = "新建企业年度", apiversion = R.ID20221229104202.v1.class)
  24. @CACHEING_CLEAN(cms = {@cm(clazz = personnel.class, method = {"queryList", "queryDetailList"}), @cm(clazz = personnelstatistics.class, method = {"queryList"})})
  25. public String insert() throws YosException {
  26. Long year = content.getLong("year");
  27. Long sa_salestargetbillid = content.getLong("sa_salestargetbillid");
  28. Long sys_enterpriseid = content.getLong("sys_enterpriseid");
  29. Long sa_contractid = content.getLong("sa_contractid");
  30. String tradefield = content.getString("tradefield");
  31. ArrayList<String> sqlList = new ArrayList<>();
  32. if (sa_salestargetbillid <= 0) {
  33. //查询创建年度是否存在
  34. String sql = "SELECT sa_salestargetbillid FROM sa_salestargetbill WHERE `year` = " + year + " AND targettype ='企业目标' AND siteid = '" + siteid + "' and sys_enterpriseid = " + sys_enterpriseid + " and tradefield='" + tradefield + "'";
  35. Rows rows = dbConnect.runSqlQuery(sql);
  36. if (rows.isNotEmpty()) {
  37. sa_salestargetbillid = rows.get(0).getLong("sa_salestargetbillid");
  38. } else {
  39. sa_salestargetbillid = createTableID("sa_salestargetbill");
  40. SQLFactory sqlFactory = new SQLFactory(this, "创建新年度");
  41. sqlFactory.addParameter("siteid", siteid);
  42. sqlFactory.addParameter("sa_salestargetbillid", sa_salestargetbillid);
  43. sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
  44. sqlFactory.addParameter("username", username);
  45. sqlFactory.addParameter("userid", userid);
  46. sqlFactory.addParameter("year", year);
  47. sqlFactory.addParameter("targettype", "企业目标");
  48. sqlFactory.addParameter("tradefield", tradefield);
  49. sqlList.add(sqlFactory.getSQL());
  50. }
  51. }
  52. if (dbConnect.runSqlQuery("SELECT * from sa_salestarget WHERE sa_salestargetbillid = " + sa_salestargetbillid + " and sa_contractid = " + sa_contractid + " and siteid = '" + siteid + "' and tradefield='" + tradefield + "'").isNotEmpty()) {
  53. return getErrReturnObject().setErrMsg("当前领域业绩目标已存在,无法添加").toString();
  54. }
  55. String[] types = {"年", "季", "月"};
  56. String sql = "SELECT 1 FROM sa_salestargethr WHERE sa_salestargetbillid = " + sa_salestargetbillid + " and siteid = '" + siteid + "' and sys_enterpriseid = " + sys_enterpriseid;
  57. Rows rows = dbConnect.runSqlQuery(sql);
  58. if (rows.isEmpty()) {
  59. SQLFactory saleFactory = new SQLFactory(this, "企业范围新增");
  60. saleFactory.addParameter("siteid", siteid);
  61. saleFactory.addParameter("sa_salestargethrid", createTableID("sa_salestargethr"));
  62. saleFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
  63. saleFactory.addParameter("sa_salestargetbillid", sa_salestargetbillid);
  64. sqlList.add(saleFactory.getSQL());
  65. }
  66. for (String type : types) {
  67. int point;
  68. if (type.equals("年")) {
  69. point = 1;
  70. } else if (type.equals("季")) {
  71. point = 4;
  72. } else if (type.equals("月")) {
  73. point = 12;
  74. } else {
  75. point = 0;
  76. }
  77. for (int i = 0; i < point; i++) {
  78. SQLFactory targetFactory = new SQLFactory(this, "企业-目标明细新增");
  79. targetFactory.addParameter("siteid", siteid);
  80. targetFactory.addParameter("sa_salestargetid", createTableID("sa_salestarget"));
  81. targetFactory.addParameter("type", type);
  82. targetFactory.addParameter("point", i + 1);
  83. targetFactory.addParameter("targettype", "企业目标");
  84. targetFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
  85. targetFactory.addParameter("sa_salestargetbillid", sa_salestargetbillid);
  86. targetFactory.addParameter("year", year);
  87. targetFactory.addParameter("sa_contractid", sa_contractid);
  88. targetFactory.addParameter("createby", username);
  89. targetFactory.addParameter("target_l", 0);
  90. targetFactory.addParameter("target_h", 0);
  91. targetFactory.addParameter("tradefield", tradefield);
  92. sqlList.add(targetFactory.getSQL());
  93. }
  94. }
  95. sqlList.add(DataContrlLog.createLog(this, "sa_contract", sa_contractid, "添加业绩目标", "添加业绩目标" + year + "年" + tradefield + "领域目标").getSQL());
  96. dbConnect.runSqlUpdate(sqlList);
  97. return getSucReturnObject().toString();
  98. }
  99. @API(title = "目标编辑", apiversion = R.ID20221229111502.v1.class)
  100. @CACHEING_CLEAN(cms = {@cm(clazz = personnel.class, method = {"queryList", "queryDetailList"}), @cm(clazz = personnelstatistics.class, method = {"queryList"})})
  101. public String edit() throws YosException {
  102. Long sa_salestargetbillid = content.getLong("sa_salestargetbillid");
  103. Long sys_enterpriseid = content.getLong("sys_enterpriseid");
  104. Long sa_contractid = content.getLong("sa_contractid");
  105. if (sa_salestargetbillid <= 0) {
  106. return getErrReturnObject().setErrMsg("年度目标不存在").toString();
  107. }
  108. ArrayList<String> sqlList = new ArrayList<>();
  109. String key_l = "y1l";
  110. String key_h = "y1h";
  111. if (content.containsKey(key_l) && content.containsKey(key_h)) {
  112. sqlList.add(getSql(content.getString(key_l), content.getString(key_h), sa_salestargetbillid, sys_enterpriseid, sa_contractid, "年", 1));
  113. }
  114. for (int i = 1; i < 5; i++) {
  115. key_l = "s" + i + "l";
  116. key_h = "s" + i + "h";
  117. if (content.containsKey(key_l) && content.containsKey(key_h)) {
  118. sqlList.add(getSql(content.getString(key_l), content.getString(key_h), sa_salestargetbillid, sys_enterpriseid, sa_contractid, "季", i));
  119. }
  120. }
  121. for (int i = 1; i < 13; i++) {
  122. key_l = "m" + i + "l";
  123. key_h = "m" + i + "h";
  124. if (content.containsKey(key_l) && content.containsKey(key_h)) {
  125. sqlList.add(getSql(content.getString(key_l), content.getString(key_h), sa_salestargetbillid, sys_enterpriseid, sa_contractid, "月", i));
  126. }
  127. }
  128. //操作记录
  129. Long year = 0L;
  130. String tradefield = "";
  131. Rows rows = dbConnect.runSqlQuery("SELECT year,tradefield from sa_salestargetbill WHERE sa_salestargetbillid =" + sa_salestargetbillid + " and siteid='" + siteid + "'");
  132. if (rows.isNotEmpty()) {
  133. year = rows.get(0).getLong("year");
  134. tradefield = rows.get(0).getString("tradefield");
  135. }
  136. sqlList.add(DataContrlLog.createLog(this, "sa_contract", sa_contractid, "编辑业绩目标", "编辑业绩目标" + year + "年" + tradefield + "领域目标").getSQL());
  137. dbConnect.runSqlUpdate(sqlList);
  138. return getSucReturnObject().toString();
  139. }
  140. public String getSql(String target_l, String target_h, Long id, Long sys_enterpriseid, Long sa_contractid, String type, int point) {
  141. return " UPDATE sa_salestarget SET target_l=" + target_l + ",target_h = " + target_h + " WHERE sa_salestargetbillid =" + id + " and sys_enterpriseid =" + sys_enterpriseid + " and type ='" + type + "' AND point = " + point + " AND sa_contractid = " + sa_contractid;
  142. }
  143. @API(title = "删除", apiversion = R.ID20221229141102.v1.class)
  144. public String delete() throws YosException {
  145. Long sa_salestargetbillid = content.getLong("sa_salestargetbillid");
  146. Long sa_contractid = content.getLong("sa_contractid");
  147. ArrayList<String> sqlList = new ArrayList<>();
  148. sqlList.add("delete from sa_salestarget WHERE siteid = '" + siteid + "' and sa_salestargetbillid = " + sa_salestargetbillid + " and sa_contractid = " + sa_contractid);
  149. //操作记录
  150. Long year = 0L;
  151. String tradefield = "";
  152. Rows rows = dbConnect.runSqlQuery("SELECT year,tradefield from sa_salestargetbill WHERE sa_salestargetbillid =" + sa_salestargetbillid + " and siteid='" + siteid + "'");
  153. if (rows.isNotEmpty()) {
  154. year = rows.get(0).getLong("year");
  155. tradefield = rows.get(0).getString("tradefield");
  156. }
  157. sqlList.add(DataContrlLog.createLog(this, "sa_contract", sa_contractid, "删除业绩目标", "删除业绩目标" + year + "年" + tradefield + "领域目标").getSQL());
  158. dbConnect.runSqlUpdate(sqlList);
  159. return getSucReturnObject().toString();
  160. }
  161. @API(title = "查询对应企业的年度", apiversion = R.ID20230103102302.v1.class)
  162. public String getYear() throws YosException {
  163. Long sys_enterpriseid = content.getLong("sys_enterpriseid");
  164. Rows rows = dbConnect.runSqlQuery("SELECT year from sa_salestargetbill WHERE sys_enterpriseid = " + sys_enterpriseid + " and siteid ='" + siteid + "'");
  165. return getSucReturnObject().setData(rows).toString();
  166. }
  167. }