agents.java 53 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973
  1. package restcontroller.webmanage.sale.agents;
  2. import beans.accountbalance.Accountbalance;
  3. import beans.data.BatchDeleteErr;
  4. import beans.datacontrllog.DataContrlLog;
  5. import beans.dataextend.DataExtend;
  6. import beans.datatag.DataTag;
  7. import beans.datateam.DataTeam;
  8. import beans.enterprise.Enterprise;
  9. import beans.salearea.SaleArea;
  10. import com.alibaba.fastjson2.JSONArray;
  11. import com.alibaba.fastjson2.JSONObject;
  12. import common.Controller;
  13. import common.YosException;
  14. import common.annotation.*;
  15. import common.data.*;
  16. import org.apache.commons.lang.StringUtils;
  17. import org.apache.poi.ss.usermodel.CellStyle;
  18. import org.apache.poi.ss.usermodel.DataFormat;
  19. import org.apache.poi.xssf.usermodel.*;
  20. import restcontroller.R;
  21. import restcontroller.webmanage.executorService.Executor;
  22. import restcontroller.webmanage.sale.enterprisesaleclass.EnterpriseSaleClass;
  23. import restcontroller.webmanage.sale.enterprisetradefield.EnterpriseTradeField;
  24. import restcontroller.webmanage.sale.salearea.salearea;
  25. import java.math.BigDecimal;
  26. import java.util.ArrayList;
  27. import java.util.Arrays;
  28. import java.util.HashMap;
  29. @API(title = "经销商管理")
  30. public class agents extends Controller {
  31. public agents(JSONObject content) throws YosException {
  32. super(content);
  33. }
  34. @API(title = "经销商列表查询", apiversion = R.ID20230427101304.v1.class)
  35. @CACHEING
  36. public String query_agentList() throws YosException {
  37. /*
  38. 过滤条件设置
  39. */
  40. StringBuffer where = new StringBuffer(" 1=1 ");
  41. if (content.containsKey("where")) {
  42. JSONObject whereObject = content.getJSONObject("where");
  43. if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
  44. where.append(" and(");
  45. where.append("t2.phonenumber like'%").append(whereObject.getString("condition")).append("%' ");
  46. where.append("or t2.enterprisename like'%").append(whereObject.getString("condition")).append("%' ");
  47. where.append("or t1.agentnum like'%").append(whereObject.getString("condition")).append("%' ");
  48. where.append(")");
  49. }
  50. if (whereObject.containsKey("status") && !"".equals(whereObject.getString("status"))) {
  51. where.append(" and t1.status='").append(whereObject.getString("status")).append("' ");
  52. }
  53. }
  54. // SQLFactory sqlFactory = new SQLFactory(this, "经销商列表查询", pageSize, pageNumber, pageSorting);
  55. // sqlFactory.addParameter_SQL("where", where);
  56. // sqlFactory.addParameter("siteid", siteid);
  57. // Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
  58. QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_agents", "sys_enterpriseid", "isservice",
  59. "sa_agentsid","agentnum","priceadjustment","type","signdate","createby","createdate","islimitaccessories","islimitorder","signingstate","delivery","salearea","paymans","regiontype");
  60. querySQL.setTableAlias("t1");
  61. querySQL.addJoinTable(JOINTYPE.inner, "sys_enterprise", "t2", "t1.siteid = t2.siteid and t1.sys_enterpriseid = t2.sys_enterpriseid","enterprisename","abbreviation"
  62. ,"contact","address","phonenumber","province","city","county","grade","saleclassauth");
  63. querySQL.addQueryFields("status","case when t1.status='1' then '审核' else '新建' end");
  64. querySQL.setSiteid(siteid);
  65. querySQL.setWhere(where.toString());
  66. querySQL.setPage(pageSize, pageNumber);
  67. Rows rows = querySQL.query();
  68. return getSucReturnObject().setData(rows).toString();
  69. }
  70. @API(title = "经销商详情查询")
  71. @CACHEING
  72. public String query_agentMain() throws YosException {
  73. long sa_agentsid = content.getLongValue("sa_agentsid");
  74. SQLFactory sqlFactory = new SQLFactory(this, "经销商详情查询");
  75. sqlFactory.addParameter("sa_agentsid", sa_agentsid);
  76. sqlFactory.addParameter("siteid", siteid);
  77. Rows agentRows = dbConnect.runSqlQuery(sqlFactory.getSQL());
  78. Rows tradefieldidRows = dbConnect.runSqlQuery("select t1.sys_enterpriseid,t1.sa_agentsid,t1.sa_saleareaid,t1.tradefield,t3.areaname,t3.sa_saleareaids from sys_enterprise_tradefield t1 LEFT JOIN sa_salearea t3 ON t3.sa_saleareaid = t1.sa_saleareaid and t3.siteid = t1.siteid where t1.siteid ='" + siteid + "'");
  79. RowsMap rowsMap = tradefieldidRows.toRowsMap("sys_enterpriseid");
  80. for (Row agentRow : agentRows) {
  81. if (rowsMap.containsKey(agentRow.getString("sys_enterpriseid"))) {
  82. Rows rows = rowsMap.get(agentRow.getString("sys_enterpriseid"));
  83. if (rows.isNotEmpty()) {
  84. agentRow.put("tradefield", rows.toJsonArray("tradefield"));
  85. agentRow.put("areaname", rows.toJsonArray("areaname"));
  86. agentRow.put("sa_saleareaid", rows.get(0).getString("sa_saleareaid"));
  87. agentRow.put("sa_saleareaids", rows.get(0).getJSONArray("sa_saleareaids"));
  88. }
  89. } else {
  90. agentRow.put("tradefield", new JSONArray());
  91. agentRow.put("areaname", new JSONArray());
  92. agentRow.put("sa_saleareaid", "");
  93. agentRow.put("sa_saleareaids", new JSONArray());
  94. }
  95. agentRow.put("hrs", getEnterpriseHrs(agentRow.getLong("sys_enterpriseid")));
  96. SQLFactory salersql = new SQLFactory(this, "经销商详情查询_业务员查询");
  97. salersql.addParameter("siteid", siteid);
  98. salersql.addParameter_in("sa_saleareaid", SaleArea.getSaleAreaIds(this, agentRow.getLong("sys_enterpriseid")));
  99. Rows salerrows = dbConnect.runSqlQuery(salersql.getSQL());
  100. agentRow.put("salers", salerrows);
  101. QuerySQL querySQL=SQLFactory.createQuerySQL(this,"sa_bankabcxccard","*");
  102. querySQL.setTableAlias("t1");
  103. querySQL.setWhere("t1.siteid",siteid);
  104. querySQL.setWhere("t1.sa_agentsid",sa_agentsid);
  105. Rows bankabcxccardrows=querySQL.query();
  106. agentRow.put("bankabcxccard", bankabcxccardrows);
  107. }
  108. return getSucReturnObject().setData(agentRows.isNotEmpty() ? agentRows.get(0) : new Row()).toString();
  109. }
  110. @API(title = "经销商新增修改", intervaltime = 200)
  111. @CACHEING_CLEAN(apiClass = {EnterpriseTradeField.class}, cms = {@cm(clazz = agents.class, method = {"query_agentList", "query_agentMain"}), @cm(clazz = salearea.class, method = {"query_agent"}), @cm(clazz = salearea.class, method = {"query_agent"})})
  112. public String insertormodify_agent() throws YosException {
  113. long sa_agentsid = content.getLongValue("sa_agentsid");//新增时传0
  114. long sys_enterpriseid = content.getLongValue("sys_enterpriseid");
  115. long parentid = content.getLongValue("parentid");
  116. String agentnum = content.getString("agentnum");
  117. String presalesphonenumber = content.getStringValue("presalesphonenumber");
  118. String aftersalesphonenumber = content.getStringValue("aftersalesphonenumber");
  119. boolean islimitaccessories=content.getBooleanValue("islimitaccessories");
  120. boolean islimitorder=content.getBooleanValue("islimitorder");
  121. String signingstate=content.getStringValue("signingstate");
  122. String type = content.getString("type");
  123. String signdate = content.getStringValue("signdate");
  124. long isallsale = content.getLongValue("isallsale");
  125. String entity = content.getStringValue("entity");
  126. String delivery = content.getStringValue("delivery");
  127. String salearea = content.getStringValue("salearea");
  128. String paymans = content.getStringValue("paymans");
  129. String regiontype = content.getStringValue("regiontype");
  130. if (parentid != 0 && dbConnect.runSqlQuery("select * from sa_agents where siteid='" + siteid + "' and sa_agentsid=" + parentid).isEmpty()) {
  131. return getErrReturnObject().setErrMsg("指定的上级商户不存在").toString();
  132. }
  133. Rows rows = dbConnect.runSqlQuery("select sa_agentsid,sys_enterpriseid from sa_agents where agentnum='" + agentnum + "'");
  134. ArrayList<String> sqllist = new ArrayList<>();
  135. SQLFactory sqlFactory = new SQLFactory(this, "经销商新增");
  136. if (sa_agentsid <= 0 || dbConnect.runSqlQuery("select sa_agentsid from sa_agents where sa_agentsid=" + sa_agentsid).isEmpty()) {
  137. if (dbConnect.runSqlQuery("select sa_agentsid from sa_agents where sys_enterpriseid=" + sys_enterpriseid).isNotEmpty()) {
  138. return getErrReturnObject().setErrMsg("当前商户已经创建经销商档案,不可重复创建").toString();
  139. } else if (rows.isNotEmpty()) {
  140. return getErrReturnObject().setErrMsg("重复经销商编号,无法创建").toString();
  141. }
  142. sa_agentsid = createTableID("sa_agents");
  143. addAccount(sys_enterpriseid);
  144. Rows customersRows = dbConnect.runSqlQuery("SELECT sa_customersid from sa_customers WHERE sys_enterpriseid =" + sys_enterpriseid + " and siteid = '" + siteid + "'");
  145. if (customersRows.isNotEmpty()) {
  146. Long id = customersRows.get(0).getLong("sa_customersid");
  147. ArrayList<Long> userids = DataTeam.queryTeamRow(this, "sa_customers", id).toArrayList("userid", new ArrayList<>());
  148. Executor.sendEml(this, "customers_agent_add", id, siteid, userids);
  149. }
  150. sqllist.add(DataContrlLog.createLog(this, "sa_agents", sa_agentsid, "新增", "新增经销商").getSQL());
  151. } else {
  152. if (rows.isNotEmpty()) {
  153. if (rows.get(0).getLong("sa_agentsid") != sa_agentsid || rows.get(0).getLong("sys_enterpriseid") != sys_enterpriseid) {
  154. return getErrReturnObject().setErrMsg("重复经销商编号,无法修改").toString();
  155. }
  156. }
  157. sqlFactory = new SQLFactory(this, "经销商修改");
  158. sqllist.add(DataContrlLog.createLog(this, "sa_agents", sa_agentsid, "编辑", "编辑经销商").getSQL());
  159. }
  160. sqlFactory.addParameter("siteid", siteid);
  161. sqlFactory.addParameter("sa_agentsid", sa_agentsid);
  162. sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
  163. sqlFactory.addParameter("username", username);
  164. sqlFactory.addParameter("changeuserid", userid);
  165. sqlFactory.addParameter("agentnum", agentnum);
  166. sqlFactory.addParameter("type", type);
  167. sqlFactory.addParameter("entity", entity);
  168. sqlFactory.addParameter("parentid", parentid == 0 ? "null" : String.valueOf(parentid));
  169. sqlFactory.addParameter("signdate", signdate.equals("") ? "null" : signdate);
  170. sqlFactory.addParameter("isservice", content.getLongValue("isservice", 0L));
  171. sqlFactory.addParameter("submitautocheck", content.getLongValue("submitautocheck", 1L));
  172. sqlFactory.addParameter("priceadjustment", content.getBigDecimal("priceadjustment"));
  173. sqlFactory.addParameter("presalesphonenumber", presalesphonenumber);
  174. sqlFactory.addParameter("aftersalesphonenumber",aftersalesphonenumber);
  175. sqlFactory.addParameter("islimitaccessories",islimitaccessories);
  176. sqlFactory.addParameter("islimitorder",islimitorder);
  177. sqlFactory.addParameter("signingstate",signingstate);
  178. sqlFactory.addParameter("delivery",delivery);
  179. sqlFactory.addParameter("salearea",salearea);
  180. sqlFactory.addParameter("paymans",paymans);
  181. sqlFactory.addParameter("regiontype",regiontype);
  182. sqllist.add(sqlFactory.getSQL());
  183. //扩展字段
  184. String erpagentnum = content.getStringValue("erpagentnum");
  185. String sql = "SELECT * from sys_dataextend WHERE ownertable='sys_enterprise' and ownerid=" + sys_enterpriseid + " and siteid = '" + siteid + "'";
  186. Rows extendRows = dbConnect.runSqlQuery(sql);
  187. Long sys_dataextendid = 0L;
  188. if (extendRows.isEmpty()) {
  189. sys_dataextendid = createTableID("sys_dataextend");
  190. sqlFactory = new SQLFactory(this, "经销商扩展字段新增");
  191. } else {
  192. sys_dataextendid = extendRows.get(0).getLong("sys_dataextendid");
  193. sqlFactory = new SQLFactory(this, "经销商扩展字段更新");
  194. }
  195. sqlFactory.addParameter("siteid", siteid);
  196. sqlFactory.addParameter("username", username);
  197. sqlFactory.addParameter("userid", userid);
  198. sqlFactory.addParameter("sys_dataextendid", sys_dataextendid);
  199. sqlFactory.addParameter("ownerid", sys_enterpriseid);
  200. sqlFactory.addParameter("ownertable", "sys_enterprise");
  201. sqlFactory.addParameter("erpagentnum", erpagentnum);
  202. sqllist.add(sqlFactory.getSQL());
  203. sqlFactory = new SQLFactory(this, "商户档案修改");
  204. sqlFactory.addParameter("limitreturnday", content.getLongValue("limitreturnday"));
  205. sqlFactory.addParameter("freefreightamount", content.getBigDecimal("freefreightamount"));
  206. //开票节点(1:订单审核:2:发货)
  207. sqlFactory.addParameter("invoicingpoint", content.getLongValue("invoicingpoint") == 0 ? 2 : content.getLongValue("invoicingpoint"));
  208. //是否需要经营授权,默认1
  209. sqlFactory.addParameter("saleclassauth", content.getBooleanValue("saleclassauth") == false ? 0 : 1);
  210. sqlFactory.addParameter("grade", content.getLongValue("grade"));
  211. sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
  212. sqlFactory.addParameter("siteid", siteid);
  213. sqlFactory.addParameter("username", username);
  214. sqlFactory.addParameter("changeuserid", userid);
  215. sqllist.add(sqlFactory.getSQL());
  216. //企业信息同步到【我的客户】,并将该客户打上经销商标签,
  217. Rows customersRows = dbConnect.runSqlQuery("SELECT sa_customersid from sa_customers WHERE sys_enterpriseid =" + sys_enterpriseid + " and siteid = '" + siteid + "'");
  218. Long sa_customersid = 0L;
  219. if (customersRows.isNotEmpty()) {
  220. sa_customersid = customersRows.get(0).getLong("sa_customersid");
  221. sqlFactory = new SQLFactory(this, "客户更新");
  222. } else {
  223. sa_customersid = createTableID("sa_customers");
  224. sqlFactory = new SQLFactory(this, "客户新增");
  225. }
  226. Row enterpriseRow = Enterprise.getEnterprise(this, sys_enterpriseid);
  227. sqlFactory.addParameter("siteid", siteid);
  228. sqlFactory.addParameter("userid", userid);
  229. sqlFactory.addParameter("username", username);
  230. sqlFactory.addParameter("sa_customersid", sa_customersid);
  231. //上级客户ID
  232. sqlFactory.addParameter("parentid", "null");
  233. //合作企业档案ID
  234. sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
  235. //客户类型
  236. sqlFactory.addParameter("type", "经销商(客户)");
  237. //客户池(公海池)ID
  238. sqlFactory.addParameter("sa_customerpoolid", 0);
  239. //客户来源
  240. sqlFactory.addParameter("source", "经销商同步");
  241. sqlFactory.addParameter("customergrade", "null");
  242. sqlFactory.addParameter("ispublic", 0);
  243. sqlFactory.addParameter("name", enterpriseRow.getString("enterprisename"));
  244. sqlFactory.addParameter("province", enterpriseRow.getString("province"));
  245. sqlFactory.addParameter("city", enterpriseRow.getString("city"));
  246. sqlFactory.addParameter("county", enterpriseRow.getString("county"));
  247. sqlFactory.addParameter("address", enterpriseRow.getString("address"));
  248. sqlFactory.addParameter("phonenumber", enterpriseRow.getString("phonenumber"));
  249. sqllist.add(sqlFactory.getSQL());
  250. JSONArray tradefields = content.getJSONArray("tradefields");
  251. Long sa_saleareaid = content.getLong("sa_saleareaid");
  252. sqllist.add("DELETE FROM sys_enterprise_tradefield WHERE sa_agentsid=" + sa_agentsid + " AND siteid = '" + siteid + "'");
  253. if (tradefields != null && !tradefields.isEmpty()) {
  254. for (Object object : tradefields) {
  255. String tradefield = String.valueOf(object);
  256. sqlFactory = new SQLFactory(this, "企业领域授权_新增");
  257. sqlFactory.addParameter("siteid", siteid);
  258. sqlFactory.addParameter("userid", userid);
  259. sqlFactory.addParameter("tradefield", tradefield);
  260. sqlFactory.addParameter("tradefieldmx", "");
  261. sqlFactory.addParameter("sa_saleareaid", sa_saleareaid);
  262. sqlFactory.addParameter("hrid", content.getLongValue("hrid"));
  263. sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
  264. sqlFactory.addParameter("sa_agentsid", sa_agentsid);
  265. sqlFactory.addParameter("sys_enterprise_tradefieldid", createTableID("sys_enterprise_tradefield"));
  266. sqllist.add(sqlFactory.getSQL());
  267. }
  268. }
  269. dbConnect.runSqlUpdate(sqllist);
  270. content.put("sa_agentsid", sa_agentsid);
  271. //打经销商标签
  272. DataTag.createTag(this, "sa_customers", sa_customersid, "经销商");
  273. return query_agentMain();
  274. }
  275. @API(title = "经销商状态变更", apiversion = R.ID20230212101703.v1.class)
  276. @CACHEING_CLEAN(cms = {@cm(clazz = agents.class, method = {"query_agentList", "query_agentMain"}),
  277. @cm(clazz = EnterpriseSaleClass.class, method = {"queryList"})}, apiversions = {R.ID20221011144903.class, R.ID20221012164402.class})
  278. public String changeStatus() throws YosException {
  279. String status = content.getString("status");
  280. ArrayList<String> sqllist = new ArrayList<>();
  281. JSONArray array = content.getJSONArray("sa_agentsids");
  282. for (Object o : array) {
  283. long sa_agentsid = Long.parseLong(o.toString());
  284. sqllist.add("update sa_agents set status='" + status + "' where sa_agentsid=" + sa_agentsid);
  285. // Rows customersRows = dbConnect.runSqlQuery("SELECT sa_customersid from sa_customers WHERE sys_enterpriseid in (SELECT sys_enterpriseid from sa_agents WHERE sa_agentsid=" + sa_agentsid + " and siteid='" + siteid + "' ) and siteid='" + siteid + "'");
  286. // if (customersRows.isNotEmpty()) {
  287. // Long sa_customersid = customersRows.get(0).getLong("sa_customersid");
  288. if (status.equals("1")) {
  289. // DataTag.createTag(this, "sa_customers", sa_customersid, "经销商");
  290. sqllist.add(DataContrlLog.createLog(this, "sa_agents", sa_agentsid, "审核", "审核经销商").getSQL());
  291. } else {
  292. // DataTag.deleteTag(this, "sa_customers", sa_customersid, "经销商");
  293. sqllist.add(DataContrlLog.createLog(this, "sa_agents", sa_agentsid, "反审核", "反审核经销商").getSQL());
  294. }
  295. // }
  296. }
  297. dbConnect.runSqlUpdate(sqllist);
  298. return getSucReturnObject().toString();
  299. }
  300. @API(title = "商户作废", apiversion = R.ID20221011145003.v1.class)
  301. @CACHEING_CLEAN(cms = {@cm(clazz = agents.class, method = {"query_agentList", "query_agentMain"}), @cm(clazz = salearea.class, method = {"query_agent"})})
  302. public String delete_agent() throws YosException {
  303. JSONArray sa_agentsids = content.getJSONArray("sa_agentsids");
  304. BatchDeleteErr batchDeleteErr = BatchDeleteErr.create(this, sa_agentsids.size());
  305. ArrayList<String> list = new ArrayList<>();
  306. ArrayList<Long> delagentsidList = new ArrayList<>();
  307. for (Object o : sa_agentsids) {
  308. long sa_agentsid = Long.parseLong(o.toString());
  309. Rows userRows = dbConnect.runSqlQuery("SELECT userid,t1.sys_enterpriseid FROM sys_enterprise_hr t1 INNER JOIN sa_agents t2 ON t2.sys_enterpriseid=t1.sys_enterpriseid WHERE t2.siteid='" + siteid + "' and t2.sa_agentsid='" + sa_agentsid + "'");
  310. ArrayList<String> useridlist = userRows.toArrayList("userid");
  311. useridlist.add("0");
  312. // SQLFactory sqlFactory = new SQLFactory("sql:select * from sys_userrequestlog where userid!=0 and userid in $userid$");
  313. // sqlFactory.addParameter_in("userid", useridlist);
  314. // Rows logRows = dbConnect.runSqlQuery(sqlFactory.getSQL());
  315. QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_userrequestlog", "*");
  316. querySQL.setWhere("userid!=0");
  317. querySQL.setWhere("userid",useridlist);
  318. Rows logRows = querySQL.query();
  319. if (logRows.isNotEmpty()) {
  320. batchDeleteErr.addErr(sys_enterpriseid, "该商户下属账号存在访问记录,不可进行作废操作");
  321. continue;
  322. }
  323. list.add("update sa_agents set status='作废' where siteid='" + siteid + "' and sa_agentsid=" + sa_agentsid);
  324. String replace = Arrays.toString(useridlist.toArray()).replace("[", "(").replace("]", ")");
  325. list.add("update sys_users set status='INACTIVE' where userid in" + replace);
  326. list.add(DataContrlLog.createLog(this, "sa_agents", sa_agentsid, "作废", "作废经销商至回收站").getSQL());
  327. delagentsidList.add(sa_agentsid);
  328. // {
  329. // SQLFactory deletesql = new SQLFactory("sql:delete from sa_agents where siteid='" + siteid + "' and sa_agentsid=" + sa_agentsid);
  330. // list.add(deletesql.getSQL());
  331. // }
  332. // {
  333. // SQLFactory deletesql = new SQLFactory("sql:DELETE from sys_enterprise_hr WHERE sys_enterpriseid in (SELECT sys_enterpriseid FROM sa_agents WHERE sa_agentsid = " + sa_agentsid + " AND siteid = '" + siteid + "')");
  334. // list.add(deletesql.getSQL());
  335. // }
  336. // if (useridlist.size() > 0) {
  337. // {
  338. // SQLFactory deletesql = new SQLFactory("sql:delete from sys_users where userid in $userid$");
  339. // deletesql.addParameter_in("userid", useridlist);
  340. // list.add(deletesql.getSQL());
  341. // }
  342. // {
  343. // SQLFactory deletesql = new SQLFactory("sql:delete from sys_usersite where userid in $userid$");
  344. // deletesql.addParameter_in("userid", useridlist);
  345. // list.add(deletesql.getSQL());
  346. // }
  347. // {
  348. // SQLFactory deletesql = new SQLFactory("sql:delete from sys_userrole where userid in $userid$");
  349. // deletesql.addParameter_in("userid", useridlist);
  350. // list.add(deletesql.getSQL());
  351. // }
  352. // }
  353. // //删除经销商标签
  354. // Row agentRow = getAgentByAgentid(sa_agentsid);
  355. // Long sys_enterpriseid = agentRow.isEmpty() ? 0 : agentRow.getLong("sys_enterpriseid");
  356. // if (sys_enterpriseid > 0) {
  357. // list.add("DELETE from sys_datatag WHERE tag='经销商' and ownertable='sa_customers' and siteid = '" + siteid + "' and ownerid in (SELECT sa_customersid FROM sa_customers WHERE sys_enterpriseid = " + sys_enterpriseid + " and siteid='" + siteid + "')");
  358. // }
  359. }
  360. dbConnect.runSqlUpdate(list);
  361. DataExtend.createDeleteReasonSql(this, "sa_agents", delagentsidList, content.getStringValue("deletereason"));
  362. return batchDeleteErr.getReturnObject().toString();
  363. }
  364. @API(title = "经销商联系人信息及地址信息新增修改", apiversion = R.ID20221009155703.v1.class)
  365. @CACHEING_CLEAN(apiversions = R.ID20221009155803.v1.class)
  366. public String insertormodify_agentEnterpriseContacts() throws YosException {
  367. long contactsid = content.getLongValue("contactsid");//新增时传0
  368. long sys_enterpriseid = content.getLongValue("sys_enterpriseid");
  369. String name = content.getString("name");
  370. String sex = content.getString("sex");
  371. String depname = content.getString("depname");
  372. String position = content.getString("position");
  373. long isleader = content.getLongValue("isleader");
  374. String birthday = content.getStringValue("birthday");
  375. String phonenumber = content.getString("phonenumber");
  376. String email = content.getString("email");
  377. String province = content.getString("province");
  378. String city = content.getString("city");
  379. String county = content.getString("county");
  380. String remarks = content.getString("remarks");
  381. String address = content.getString("address");
  382. String cardno = content.getStringValue("cardno");
  383. long workaddress = content.getLongValue("workaddress");
  384. boolean isdefault = content.getBooleanValue("isdefault");
  385. String type = content.getStringValue("type");
  386. ArrayList<String> sqllist = new ArrayList<>();
  387. if (contactsid <= 0 || dbConnect.runSqlQuery("select contactsid from sys_enterprise_contacts where contactsid=" + contactsid).isEmpty()) {
  388. contactsid = createTableID("sys_enterprise_contacts");
  389. SQLFactory sqlFactory = new SQLFactory(this, "联系人信息新增");
  390. sqlFactory.addParameter("siteid", siteid);
  391. sqlFactory.addParameter("contactsid", contactsid);
  392. sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
  393. sqlFactory.addParameter("name", name);
  394. sqlFactory.addParameter("sex", sex);
  395. sqlFactory.addParameter("depname", depname);
  396. sqlFactory.addParameter("position", position);
  397. sqlFactory.addParameter("isleader", isleader);
  398. sqlFactory.addParameter("birthday", birthday.equals("") ? "null" : birthday);
  399. sqlFactory.addParameter("phonenumber", phonenumber);
  400. sqlFactory.addParameter("email", email);
  401. sqlFactory.addParameter("province", province);
  402. sqlFactory.addParameter("city", city);
  403. sqlFactory.addParameter("county", county);
  404. sqlFactory.addParameter("remarks", remarks);
  405. sqlFactory.addParameter("address", address);
  406. sqlFactory.addParameter("workaddress", workaddress);
  407. sqlFactory.addParameter("cardno", cardno);
  408. sqlFactory.addParameter("type", type);
  409. sqlFactory.addParameter("userid", userid);
  410. if (workaddress == 1) {
  411. sqlFactory.addParameter("isdefault", isdefault);
  412. if (isdefault) {
  413. sqllist.add("update sys_enterprise_contacts set isdefault=0 where contactsid !=" + contactsid + " and sys_enterpriseid=" + sys_enterpriseid+" and type='"+type+"'");
  414. }
  415. } else {
  416. sqlFactory.addParameter("isdefault", 0);
  417. }
  418. sqllist.add(sqlFactory.getSQL());
  419. content.put("sys_enterpriseid", sys_enterpriseid);
  420. } else {
  421. SQLFactory sqlFactory = new SQLFactory(this, "联系人信息修改");
  422. sqlFactory.addParameter("siteid", siteid);
  423. sqlFactory.addParameter("contactsid", contactsid);
  424. sqlFactory.addParameter("name", name);
  425. sqlFactory.addParameter("sex", sex);
  426. sqlFactory.addParameter("depname", depname);
  427. sqlFactory.addParameter("position", position);
  428. sqlFactory.addParameter("isleader", isleader);
  429. sqlFactory.addParameter("birthday", birthday.equals("") ? "null" : birthday);
  430. sqlFactory.addParameter("phonenumber", phonenumber);
  431. sqlFactory.addParameter("email", email);
  432. sqlFactory.addParameter("province", province);
  433. sqlFactory.addParameter("city", city);
  434. sqlFactory.addParameter("county", county);
  435. sqlFactory.addParameter("remarks", remarks);
  436. sqlFactory.addParameter("address", address);
  437. sqlFactory.addParameter("workaddress", workaddress);
  438. sqlFactory.addParameter("cardno", cardno);
  439. sqlFactory.addParameter("type", type);
  440. sqlFactory.addParameter("userid", userid);
  441. if (workaddress == 1) {
  442. sqlFactory.addParameter("isdefault", isdefault);
  443. if (isdefault) {
  444. sqllist.add("update sys_enterprise_contacts set isdefault=0 where contactsid !=" + contactsid + " and sys_enterpriseid=" + sys_enterpriseid);
  445. }
  446. } else {
  447. sqlFactory.addParameter("isdefault", 0);
  448. }
  449. sqllist.add(sqlFactory.getSQL());
  450. }
  451. dbConnect.runSqlUpdate(sqllist);
  452. return getSucReturnObject().toString();
  453. }
  454. @API(title = "联系人信息列表查询", apiversion = R.ID20221009155803.v1.class)
  455. @CACHEING
  456. public String query_agentEnterpriseContactsList() throws YosException {
  457. /*
  458. 过滤条件设置
  459. */
  460. long sys_enterpriseid = content.getLongValue("sys_enterpriseid");
  461. StringBuffer where = new StringBuffer(" 1=1 ");
  462. if (content.containsKey("where")) {
  463. JSONObject whereObject = content.getJSONObject("where");
  464. if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
  465. where.append(" and(");
  466. where.append("t1.phonenumber like'%").append(whereObject.getString("condition")).append("%' ");
  467. where.append("or t1.name like'%").append(whereObject.getString("condition")).append("%' ");
  468. where.append(")");
  469. }
  470. if (whereObject.containsKey("workaddress") && !"".equals(whereObject.getString("workaddress"))) {
  471. where.append(" and t1.workaddress='" + whereObject.getString("workaddress") + "' ");
  472. }
  473. if (whereObject.containsKey("isdefault") && !"".equals(whereObject.getString("isdefault"))) {
  474. where.append(" and t1.isdefault='" + whereObject.getString("isdefault") + "' ");
  475. }
  476. }
  477. // SQLFactory sqlFactory = new SQLFactory(this, "联系人信息列表查询", pageSize, pageNumber, pageSorting);
  478. // sqlFactory.addParameter_SQL("where", where);
  479. // sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
  480. // sqlFactory.addParameter("siteid", siteid);
  481. // Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
  482. QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_enterprise_contacts", "contactsid", "sys_enterpriseid",
  483. "name","sex","depname","position","isleader","birthday","phonenumber","email","province","city","county","remarks","address","workaddress","isdefault","type","cardno");
  484. querySQL.setTableAlias("t1");
  485. querySQL.setSiteid(siteid);
  486. querySQL.setWhere("ifnull(t1.deleted,0)=0");
  487. querySQL.setWhere("t1.sys_enterpriseid",sys_enterpriseid);
  488. querySQL.setWhere(where.toString());
  489. querySQL.setPage(pageSize, pageNumber);
  490. Rows rows = querySQL.query();
  491. return getSucReturnObject().setData(rows).toString();
  492. }
  493. @API(title = "经销商虚拟账号列表", apiversion = R.ID2025101409014503.v1.class)
  494. @CACHEING
  495. public String queryBankSbcCardList() throws YosException {
  496. StringBuffer where = new StringBuffer(" 1=1 ");
  497. long sa_agentsid = content.getLong("sa_agentsid");
  498. if (content.containsKey("where")) {
  499. JSONObject whereObject = content.getJSONObject("where");
  500. if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
  501. where.append(" and(");
  502. where.append("t1.xncardnoabc like'%").append(whereObject.getString("condition")).append("%' ");
  503. where.append(")");
  504. }
  505. if (whereObject.containsKey("isused") && !"".equals(whereObject.getString("isused"))) {
  506. where.append(" and t1.isused ='").append(whereObject.getString("isused")).append("' ");
  507. }
  508. }
  509. QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_bankabcxccard", "*");
  510. querySQL.setTableAlias("t1");
  511. querySQL.setSiteid(siteid);
  512. querySQL.setWhere("t1.sa_agentsid",sa_agentsid);
  513. querySQL.setWhere(where.toString());
  514. querySQL.setPage(pageSize, pageNumber);
  515. Rows rows = querySQL.query();
  516. return getSucReturnObject().setData(rows).toString();
  517. }
  518. @API(title = "查询订单收货人信息", apiversion = R.ID20230220002602.v1.class)
  519. @CACHEING
  520. public String queryList() throws YosException {
  521. /*
  522. 过滤条件设置
  523. */
  524. long sys_enterpriseid = content.getLongValue("sys_enterpriseid");
  525. StringBuffer where = new StringBuffer(" 1=1 ");
  526. if (content.containsKey("where")) {
  527. JSONObject whereObject = content.getJSONObject("where");
  528. if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
  529. where.append(" and(");
  530. where.append("t1.phonenumber like'%").append(whereObject.getString("condition")).append("%' ");
  531. where.append("or t1.name like'%").append(whereObject.getString("condition")).append("%' ");
  532. where.append(")");
  533. }
  534. }
  535. SQLFactory sqlFactory = new SQLFactory(this, "收货人列表查询");
  536. sqlFactory.addParameter_SQL("where", where);
  537. sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
  538. sqlFactory.addParameter("siteid", siteid);
  539. Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
  540. return getSucReturnObject().setData(rows).toString();
  541. }
  542. @API(title = "联系人信息删除", apiversion = R.ID20221009155903.v1.class)
  543. @CACHEING_CLEAN(apiversions = R.ID20221009155803.v1.class)
  544. public String delete_agentEnterpriseContacts() throws YosException {
  545. long contactsid = content.getLongValue("contactsid");
  546. Rows rows = dbConnect.runSqlQuery("select contactsid,ifnull(isdefault,0) isdefault from sys_enterprise_contacts where contactsid=" + contactsid);
  547. if (!rows.isEmpty()) {
  548. if (rows.get(0).getBoolean("isdefault")) {
  549. return getErrReturnObject().setErrMsg("该地址信息为默认地址,无法删除").toString();
  550. }
  551. }
  552. dbConnect.runSqlUpdate("update sys_enterprise_contacts set deleted=1 where contactsid=" + contactsid);
  553. return getSucReturnObject().toString();
  554. }
  555. @API(title = "经销商账户余额查询", apiversion = R.ID20221009160003.v1.class)
  556. @CACHEING
  557. public String query_agentaccountbalance() throws YosException {
  558. long sys_enterpriseid = content.getLongValue("sys_enterpriseid");
  559. long isorder = content.getLongValue("isorder");
  560. // SQLFactory sqlFactory = new SQLFactory(this, "经销商账户余额查询");
  561. // sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
  562. // sqlFactory.addParameter("siteid", siteid);
  563. // Rows agentaccountbalanceRows = dbConnect.runSqlQuery(sqlFactory.getSQL());
  564. // if (!agentaccountbalanceRows.isEmpty()) {
  565. // for (Row row : agentaccountbalanceRows) {
  566. // row.put("balance", row.getBigDecimal("balance"));
  567. // row.put("creditquota", row.getBigDecimal("creditquota"));
  568. // }
  569. // }
  570. BigDecimal rebateBalance = Accountbalance.getRebateBalance(this, sys_enterpriseid);
  571. String sql = "SELECT sa_accountclassid from sa_accountclass WHERE siteid = '" + siteid + "' and isrebate = 1";
  572. if (isorder == 1) {
  573. sql = sql + " and isorder=1";
  574. }
  575. Rows rows = dbConnect.runSqlQuery(sql);
  576. if (rows.isNotEmpty()) {
  577. Long sa_accountclassid = rows.get(0).getLong("sa_accountclassid");
  578. sql = "SELECT * from sa_accountbalance WHERE sys_enterpriseid = " + sys_enterpriseid + " and siteid='" + siteid + "' and sa_accountclassid=" + sa_accountclassid;
  579. if (isorder == 1) {
  580. sql = sql + " and isorder=1";
  581. }
  582. rows = dbConnect.runSqlQuery(sql);
  583. if (rows.isNotEmpty()) {
  584. Long sa_accountbalanceid = rows.get(0).getLong("sa_accountbalanceid");
  585. dbConnect.runSqlUpdate("UPDATE sa_accountbalance SET balance=" + rebateBalance + " WHERE sa_accountbalanceid= '" + sa_accountbalanceid + "' and siteid='" + siteid + "'");
  586. }
  587. }
  588. sql = "SELECT accountno,accountname,sa_accountclassid,isrebate from sa_accountclass WHERE siteid = '" + siteid + "' and isused = 1";
  589. if (isorder == 1) {
  590. sql = sql + " and isorder=1";
  591. }
  592. rows = dbConnect.runSqlQuery(sql);
  593. Rows balanceRows = dbConnect.runSqlQuery("SELECT sa_accountbalanceid,balance,ifnull(discountamount,0) discountamount,creditquota,changeuserid,changeby,changedate,sa_accountclassid from sa_accountbalance WHERE siteid = '" + siteid + "' and sys_enterpriseid = " + sys_enterpriseid);
  594. for (Row row : rows) {
  595. row.put("sa_accountbalanceid", "");
  596. row.put("balance", "0");
  597. row.put("discountamount", "0");
  598. row.put("creditquota", "0");
  599. row.put("changeuserid", "");
  600. row.put("changeby", "");
  601. row.put("changedate", "");
  602. for (Row balanceRow : balanceRows) {
  603. if (row.getLong("sa_accountclassid") == balanceRow.getLong("sa_accountclassid")) {
  604. row.putAll(balanceRow);
  605. }
  606. }
  607. }
  608. return getSucReturnObject().setData(rows).toString();
  609. }
  610. /**
  611. * 添加默认的营销账户余额
  612. *
  613. * @return
  614. * @throws YosException
  615. */
  616. public void addAccount(Long sys_enterpriseid) throws YosException {
  617. ArrayList<String> sqlList = new ArrayList<>();
  618. Rows rows = dbConnect.runSqlQuery("SELECT sa_accountclassid from sa_accountclass WHERE isused = 1 and siteid ='" + siteid + "'");
  619. for (Row row : rows) {
  620. SQLFactory sqlFactory = new SQLFactory(this, "新增营销账户");
  621. sqlFactory.addParameter("sa_accountbalanceid", createTableID("sa_accountbalance"));
  622. sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
  623. sqlFactory.addParameter("sa_accountclassid", row.getLong("sa_accountclassid"));
  624. sqlFactory.addParameter("siteid", siteid);
  625. sqlFactory.addParameter("userid", userid);
  626. sqlFactory.addParameter("username", username);
  627. sqlList.add(sqlFactory.getSQL());
  628. }
  629. dbConnect.runSqlUpdate(sqlList);
  630. }
  631. @API(title = "经销商档案导入模板下载", apiversion = R.ID20230311162904.v1.class)
  632. public String uploadAgents() throws YosException {
  633. ExcelFactory excelFactory = new ExcelFactory("货品档案导入模板");
  634. XSSFSheet sheet = excelFactory.getXssfWorkbook().createSheet("Sheet1");
  635. XSSFWorkbook xssfFWorkbook = excelFactory.getXssfWorkbook();
  636. CellStyle style = xssfFWorkbook.createCellStyle();
  637. DataFormat format = xssfFWorkbook.createDataFormat();
  638. style.setDataFormat(format.getFormat("@"));
  639. // 对单独某一列进行样式赋值,第一个参数为列数,第二个参数为样式
  640. for (int i = 0; i <= 16; i++) {
  641. sheet.setDefaultColumnStyle(i, style);
  642. }
  643. // 设置工作薄列宽
  644. ExportExcel.setBatchDetailSheetColumn1(sheet);// 设置工作薄列宽
  645. XSSFCellStyle titleCellStyle1 = ExportExcel.createTitleCellStyle1(xssfFWorkbook);
  646. XSSFCellStyle titleCellStyle2 = ExportExcel.createTitleCellStyle2(xssfFWorkbook);
  647. XSSFCellStyle titleCellStyle3 = ExportExcel.createTitleCellStyle3(xssfFWorkbook);
  648. XSSFCellStyle titleCellStyle4 = ExportExcel.createBodyCellStyle4(xssfFWorkbook);
  649. ExportExcel.batchDetail(sheet, titleCellStyle1, titleCellStyle2, titleCellStyle3, titleCellStyle4, xssfFWorkbook);
  650. Rows aa = saveToExcelAttachment(excelFactory);
  651. String url = "";
  652. if (!aa.isEmpty()) {
  653. url = aa.get(0).getString("url");
  654. }
  655. return getSucReturnObject().setData(url).toString();
  656. }
  657. @API(title = "经销商档案导入", apiversion = R.ID20230311163004.v1.class)
  658. @CACHEING_CLEAN(cms = {@cm(clazz = agents.class, method = {"query_agentList", "query_agentMain"}), @cm(clazz = salearea.class, method = {"query_agent"}), @cm(clazz = salearea.class, method = {"query_agent"})})
  659. public String importAgents() {
  660. ArrayList<String> sqlList = new ArrayList<>();
  661. ExcelFactory e;
  662. try {
  663. // 华为云
  664. e = getExcelAttachment(content.getLong("attachmentid"));
  665. // 本地
  666. //e = getPostExcelFactory();
  667. ArrayList<String> keys = new ArrayList<>();
  668. keys.add("agentnum");
  669. keys.add("enterprisename");
  670. keys.add("abbreviation");
  671. keys.add("province");
  672. keys.add("city");
  673. keys.add("county");
  674. keys.add("signdate");
  675. keys.add("contact");
  676. keys.add("phonenumber");
  677. keys.add("grade");
  678. keys.add("isservice");
  679. keys.add("type");
  680. keys.add("erpagentnum");
  681. keys.add("freefreightamount");
  682. keys.add("limitreturnday");
  683. keys.add("invoicingpoint");
  684. keys.add("saleclassauth");
  685. Rows rows = e.getSheetRows(0, keys, 3);
  686. boolean iserr = false;
  687. Rows rowserr = new Rows();
  688. Rows rowssuc = new Rows();
  689. ArrayList<String> agentsList = dbConnect.runSqlQuery("select agentnum from sa_agents where siteid='" + siteid + "'").toArrayList("agentnum");
  690. ArrayList<String> gradeList = dbConnect.runSqlQuery("select value from sys_optiontype t1 inner join sys_optiontypemx t2 on t1.optiontypeid=t2.optiontypeid where typename='agentgrade' and isused=1").toArrayList("value");
  691. RowsMap agentnumRowsMap = rows.toRowsMap("agentnum");
  692. for (Row row : rows) {
  693. if (StringUtils.isEmpty(row.getString("agentnum")) || StringUtils.isEmpty(row.getString("enterprisename")) || StringUtils.isEmpty(row.getString("grade"))) {
  694. iserr = true;
  695. row.put("msg", "错误信息:经销商编号/企业名称/企业等级不能为空");
  696. rowserr.add(row);
  697. continue;
  698. }
  699. if (agentnumRowsMap.get(row.getString("agentnum")).size() > 1) {
  700. iserr = true;
  701. row.put("msg", "错误信息:本次导入经销商档案存在重复的经销商编号");
  702. rowserr.add(row);
  703. continue;
  704. }
  705. if (agentsList.contains(row.getString("agentnum"))) {
  706. iserr = true;
  707. row.put("msg", "错误信息:经销商编号已存在");
  708. rowserr.add(row);
  709. continue;
  710. }
  711. if (!gradeList.contains(row.getString("grade"))) {
  712. iserr = true;
  713. row.put("msg", "错误信息:商户等级不存在");
  714. rowserr.add(row);
  715. continue;
  716. }
  717. rowssuc.add(row);
  718. }
  719. if (iserr) {
  720. ExcelFactory excelFactory = new ExcelFactory("经销商导入错误信息");
  721. HashMap<String, String> map = new HashMap<String, String>();
  722. map.put("agentnum", "经销商编码");
  723. map.put("enterprisename", "企业名称");
  724. map.put("abbreviation", "经销商简称");
  725. map.put("province", "省");
  726. map.put("city", "市");
  727. map.put("county", "县");
  728. map.put("signdate", "签约日期");
  729. map.put("contact", "联系人");
  730. map.put("phonenumber", "联系电话");
  731. map.put("grade", "企业等级");
  732. map.put("isservice", "是否服务商");
  733. map.put("type", "经销商类型");
  734. map.put("erpagentnum", "erp编号");
  735. map.put("freefreightamount", "免运费金额");
  736. map.put("limitreturnday", "订单可退货天数");
  737. map.put("invoicingpoint", "是否订单审核可开票");
  738. map.put("saleclassauth", "是否授权所有营销类别");
  739. map.put("msg", "错误信息");
  740. ArrayList<String> colNameList = new ArrayList<String>();
  741. HashMap<String, Class> keytypemap = new HashMap<String, Class>();
  742. colNameList.add("agentnum");
  743. colNameList.add("enterprisename");
  744. colNameList.add("abbreviation");
  745. colNameList.add("province");
  746. colNameList.add("city");
  747. colNameList.add("county");
  748. colNameList.add("signdate");
  749. colNameList.add("contact");
  750. colNameList.add("phonenumber");
  751. colNameList.add("grade");
  752. colNameList.add("isservice");
  753. colNameList.add("type");
  754. colNameList.add("erpagentnum");
  755. colNameList.add("freefreightamount");
  756. colNameList.add("limitreturnday");
  757. colNameList.add("invoicingpoint");
  758. colNameList.add("saleclassauth");
  759. colNameList.add("msg");
  760. keytypemap.put("agentnum", String.class);
  761. keytypemap.put("enterprisename", String.class);
  762. keytypemap.put("abbreviation", String.class);
  763. keytypemap.put("province", String.class);
  764. keytypemap.put("city", String.class);
  765. keytypemap.put("county", String.class);
  766. keytypemap.put("signdate", String.class);
  767. keytypemap.put("contact", String.class);
  768. keytypemap.put("phonenumber", String.class);
  769. keytypemap.put("grade", String.class);
  770. keytypemap.put("isservice", String.class);
  771. keytypemap.put("type", String.class);
  772. keytypemap.put("erpagentnum", String.class);
  773. keytypemap.put("freefreightamount", String.class);
  774. keytypemap.put("limitreturnday", String.class);
  775. keytypemap.put("invoicingpoint", String.class);
  776. keytypemap.put("saleclassauth", String.class);
  777. keytypemap.put("msg", String.class);
  778. rowserr.setFieldList(colNameList);
  779. rowserr.setFieldTypeMap(keytypemap);
  780. addSheet(excelFactory, "Sheet1", rowserr, map);
  781. Rows aa = saveToExcelAttachment(excelFactory);
  782. String url = "";
  783. if (!aa.isEmpty()) {
  784. url = aa.get(0).getString("url");
  785. }
  786. return getSucReturnObject().setData(url).toString();
  787. }
  788. if (!rowssuc.isEmpty()) {
  789. for (Row row : rowssuc) {
  790. Long sys_enterpriseid = createTableID("sys_enterprise");
  791. SQLFactory sqlFactory = new SQLFactory(this, "企业新增");
  792. sqlFactory.addParameter("siteid", siteid);
  793. sqlFactory.addParameter("userid", userid);
  794. sqlFactory.addParameter("username", username);
  795. sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
  796. sqlFactory.addParameter("enterprisename", row.getString("enterprisename"));
  797. sqlFactory.addParameter("limitreturnday", row.getString("limitreturnday"));
  798. sqlFactory.addParameter("freefreightamount", row.getString("freefreightamount"));
  799. sqlFactory.addParameter("invoicingpoint", row.getString("invoicingpoint").equals("否") ? 2 : 1);
  800. sqlFactory.addParameter("abbreviation", row.getString("abbreviation"));
  801. sqlFactory.addParameter("grade", row.getString("grade"));
  802. sqlFactory.addParameter("saleclassauth", row.getString("saleclassauth").equals("否") ? 0 : 1);
  803. sqlFactory.addParameter("province", row.getString("province"));
  804. sqlFactory.addParameter("city", row.getString("city"));
  805. sqlFactory.addParameter("county", row.getString("county"));
  806. sqlFactory.addParameter("contact", row.getString("contact"));
  807. sqlFactory.addParameter("phonenumber", row.getString("phonenumber"));
  808. sqlList.add(sqlFactory.getSQL());
  809. Long sa_agentsid = createTableID("sa_agents");
  810. sqlFactory = new SQLFactory(this, "经销商导入新增");
  811. sqlFactory.addParameter("siteid", siteid);
  812. sqlFactory.addParameter("sa_agentsid", sa_agentsid);
  813. sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
  814. sqlFactory.addParameter("username", username);
  815. sqlFactory.addParameter("changeuserid", userid);
  816. sqlFactory.addParameter("agentnum", row.getString("agentnum"));
  817. sqlFactory.addParameter("type", row.getString("type"));
  818. sqlFactory.addParameter("parentid", 0);
  819. sqlFactory.addParameter("signdate", row.getString("signdate"));
  820. sqlFactory.addParameter("isservice", row.getString("isservice").equals("是") ? 1 : 0);
  821. sqlList.add(sqlFactory.getSQL());
  822. Long sys_dataextendid = createTableID("sys_dataextend");
  823. sqlFactory = new SQLFactory(this, "经销商扩展字段新增");
  824. sqlFactory.addParameter("siteid", siteid);
  825. sqlFactory.addParameter("userid", userid);
  826. sqlFactory.addParameter("username", username);
  827. sqlFactory.addParameter("ownerid", sys_enterpriseid);
  828. sqlFactory.addParameter("ownertable", "sys_enterprise");
  829. sqlFactory.addParameter("erpagentnum", row.getString("erpagentnum"));
  830. sqlFactory.addParameter("sys_dataextendid", sys_dataextendid);
  831. sqlList.add(sqlFactory.getSQL());
  832. sqlList.add(DataContrlLog.createLog(this, "sys_enterprise", sys_enterpriseid, "新增", "经销商档案导入").getSQL());
  833. sqlList.add(DataContrlLog.createLog(this, "sa_agents", sa_agentsid, "新增", "经销商档案导入").getSQL());
  834. }
  835. }
  836. if (!sqlList.isEmpty()) {
  837. dbConnect.runSqlUpdate(sqlList);
  838. }
  839. } catch (Exception e1) {
  840. e1.printStackTrace();
  841. return getErrReturnObject().setErrMsg(e1.getMessage()).toString();
  842. }
  843. return getSucReturnObject().toString();
  844. }
  845. public XSSFSheet addSheet(ExcelFactory excelFactory, String sheetname, Rows datarows,
  846. HashMap<String, String> titlemap) {
  847. ArrayList<String> keylist = datarows.getFieldList();
  848. XSSFSheet sheet = excelFactory.getXssfWorkbook().createSheet(sheetname);
  849. XSSFWorkbook xssfFWorkbook = excelFactory.getXssfWorkbook();
  850. XSSFCellStyle xssfCellStyle1 = xssfFWorkbook.createCellStyle();
  851. XSSFFont font = xssfFWorkbook.createFont();
  852. font.setColor((short) 0xa);
  853. font.setFontHeightInPoints((short) 12);
  854. font.setBold(true);
  855. xssfCellStyle1.setFont(font);
  856. CellStyle style = xssfFWorkbook.createCellStyle();
  857. DataFormat format = xssfFWorkbook.createDataFormat();
  858. style.setDataFormat(format.getFormat("@"));
  859. // 对单独某一列进行样式赋值,第一个参数为列数,第二个参数为样式
  860. for (int i = 0; i <= 17; i++) {
  861. sheet.setDefaultColumnStyle(i, style);
  862. }
  863. ExportExcel.setBatchDetailSheetColumn2(sheet);// 设置工作薄列宽
  864. XSSFCellStyle titleCellStyle1 = ExportExcel.createTitleCellStyle1(xssfFWorkbook);
  865. XSSFCellStyle titleCellStyle2 = ExportExcel.createTitleCellStyle2(xssfFWorkbook);
  866. XSSFCellStyle titleCellStyle3 = ExportExcel.createTitleCellStyle3(xssfFWorkbook);
  867. ExportExcel.batchDetailErr(sheet, titleCellStyle1, titleCellStyle2, titleCellStyle3, xssfFWorkbook);// 写入标题
  868. for (int n = 0; n < datarows.size(); n++) {
  869. Row row = datarows.get(n);
  870. XSSFRow datarow = sheet.createRow(n + 3);
  871. for (int i1 = 0; i1 < keylist.size(); i1++) {
  872. Class fieldclazztype = datarows.getFieldMeta(keylist.get(i1)).getFieldtype();
  873. if (fieldclazztype == Integer.class) {
  874. datarow.createCell(i1).setCellValue(row.getInteger((String) keylist.get(i1)));
  875. } else if (fieldclazztype == Long.class) {
  876. datarow.createCell(i1).setCellValue(row.getLong((String) keylist.get(i1)));
  877. } else if (fieldclazztype == Float.class) {
  878. datarow.createCell(i1).setCellValue(row.getFloat((String) keylist.get(i1)));
  879. } else if (fieldclazztype == Double.class) {
  880. datarow.createCell(i1).setCellValue(row.getDouble((String) keylist.get(i1)));
  881. } else {
  882. datarow.createCell(i1).setCellValue(row.getString((String) keylist.get(i1)));
  883. }
  884. if (i1 == 17) {
  885. datarow.getCell(i1).setCellStyle(xssfCellStyle1);
  886. }
  887. }
  888. }
  889. return sheet;
  890. }
  891. }