serviceorder.java 49 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895
  1. package restcontroller.webmanage.sale.serviceorder;
  2. import beans.data.BatchDeleteErr;
  3. import beans.datacontrllog.DataContrlLog;
  4. import beans.datateam.DataTeam;
  5. import beans.parameter.Parameter;
  6. import beans.salearea.SaleArea;
  7. import com.alibaba.fastjson2.JSONArray;
  8. import com.alibaba.fastjson2.JSONObject;
  9. import common.BaseClass;
  10. import common.Controller;
  11. import common.YosException;
  12. import common.annotation.API;
  13. import common.annotation.CACHEING;
  14. import common.annotation.CACHEING_CLEAN;
  15. import common.data.*;
  16. import org.apache.commons.lang.StringUtils;
  17. import org.apache.cxf.configuration.security.DNConstraintsType;
  18. import restcontroller.R;
  19. import restcontroller.webmanage.sale.serviceorder.tools.HttpURLRest;
  20. import restcontroller.webmanage.sale.serviceorder.tools.VerificationManage;
  21. import restcontroller.webmanage.sale.workorder.workorder;
  22. import restcontroller.webmanage.sale.workorder.workpresetInfo;
  23. import utility.sms.Sms;
  24. import java.util.*;
  25. import java.util.regex.Pattern;
  26. /**
  27. * 服务申请单
  28. */
  29. @API(title = "服务申请单管理")
  30. public class serviceorder extends Controller {
  31. public static HashMap<String, VerificationManage> message_map = new HashMap<>();
  32. public serviceorder(JSONObject arg0) throws YosException {
  33. super(arg0);
  34. // TODO Auto-generated constructor stub
  35. }
  36. @API(title = "服务申请单新增更新", apiversion = R.ID20230206091403.v1.class)
  37. @CACHEING_CLEAN(apiversions = {R.ID20230206091603.v1.class, R.ID20230206091703.v1.class, R.ID20230206101303.v1.class, R.ID20230217100703.v1.class, R.ID20230217133003.v1.class})
  38. public String insertormodify_serviceorder() throws YosException {
  39. ArrayList<String> sqlList = new ArrayList<>();
  40. // 表名
  41. String tableName = "sa_serviceorder";
  42. Long sa_serviceorderid = content.getLong("sa_serviceorderid");
  43. String servicetype = content.getString("servicetype"); //服务分类
  44. if (sys_enterpriseid<=0) {
  45. sys_enterpriseid = content.getLong("sys_enterpriseid");
  46. }
  47. String remarks = content.getStringValue("remarks");
  48. String class1 = content.getStringValue("class1");
  49. String class2 = content.getStringValue("class2");
  50. String reason = content.getStringValue("reason");
  51. String province = content.getStringValue("province");
  52. String city = content.getStringValue("city");
  53. String county = content.getStringValue("county");
  54. String address = content.getStringValue("address");
  55. String scenecontact = content.getStringValue("scenecontact");
  56. String scenecontactrole = content.getStringValue("scenecontactrole");
  57. String scenecontactphonenumber = content.getStringValue("scenecontactphonenumber");
  58. String billdate = content.getStringValue("billdate");
  59. String begdate = content.getStringValue("begdate");
  60. String enddate = content.getStringValue("enddate");
  61. long saler_hrid = content.getLongValue("saler_hrid");
  62. long sa_customersid = content.getLongValue("sa_customersid");
  63. String sku = content.getStringValue("sku");
  64. String cardno = content.getStringValue("cardno");
  65. long itemid = content.getLongValue("itemid");
  66. SQLFactory sqlFactory = new SQLFactory(this, "服务申请单新增");
  67. if (content.containsKey("servicetype")) {
  68. if (content.getString("servicetype").equals("安装")) {
  69. if (StringUtils.isBlank(sku)) {
  70. return getErrReturnObject().setErrMsg("安装服务单需添加序列号").toString();
  71. }
  72. if (dbConnect.runSqlQuery("select * from sa_warrantycard where sku='" + sku + "' and siteid='" + siteid + "'").isNotEmpty()) {
  73. return getErrReturnObject().setErrMsg("该序列号已安装,无法再次安装").toString();
  74. }
  75. }
  76. }
  77. if (content.containsKey("phonenumber") && !"".equals(content.getString("phonenumber"))) {
  78. if (!Pattern.matches("^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$", content.getString("phonenumber"))) {
  79. return getErrReturnObject().setErrMsg("手机格式有误").toString();
  80. }
  81. }
  82. if (sa_serviceorderid <= 0 || dbConnect.runSqlQuery(
  83. "select sa_serviceorderid from sa_serviceorder where sa_serviceorderid=" + sa_serviceorderid)
  84. .isEmpty()) {
  85. sa_serviceorderid = createTableID(tableName);
  86. sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
  87. if (saler_hrid != 0) {
  88. sqlFactory.addParameter("saler_hrid", saler_hrid);
  89. } else {
  90. Rows hrRows = dbConnect.runSqlQuery("select hrid from sys_enterprise_tradefield where siteid='" + siteid + "' and sys_enterpriseid=" + sys_enterpriseid);
  91. if (hrRows.isEmpty()) {
  92. sqlFactory.addParameter("saler_hrid", saler_hrid);
  93. } else {
  94. sqlFactory.addParameter("saler_hrid", hrRows.get(0).getLong("hrid"));
  95. }
  96. }
  97. sqlList.add(
  98. DataContrlLog.createLog(this, "sa_serviceorder", sa_serviceorderid, "新增", "服务申请单新增成功").getSQL());
  99. } else {
  100. Rows rows = dbConnect.runSqlQuery(
  101. "SELECT status,sys_enterpriseid,sa_orderid from sa_serviceorder WHERE sa_serviceorderid = "
  102. + sa_serviceorderid);
  103. if (rows.isNotEmpty()) {
  104. if (rows.get(0).getString("status").equals("新建")) {
  105. sqlFactory = new SQLFactory(this, "服务申请单更新");
  106. sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
  107. sqlList.add(DataContrlLog.createLog(this, "sa_serviceorder", sa_serviceorderid, "更新", "服务申请单更新成功")
  108. .getSQL());
  109. } else {
  110. return getErrReturnObject().setErrMsg("非新建状态下无法编辑").toString();
  111. }
  112. } else {
  113. return getErrReturnObject().setErrMsg("该服务申请单不存在").toString();
  114. }
  115. }
  116. sqlFactory.addParameter("saler_hrid", saler_hrid);
  117. sqlFactory.addParameter("servicetype", servicetype);
  118. sqlFactory.addParameter("siteid", siteid);
  119. sqlFactory.addParameter("userid", userid);
  120. sqlFactory.addParameter("username", username);
  121. sqlFactory.addParameter("sa_serviceorderid", sa_serviceorderid);
  122. sqlFactory.addParameter("sa_orderid", 0);
  123. sqlFactory.addParameter("remarks", remarks);
  124. sqlFactory.addParameter("class1", class1);
  125. sqlFactory.addParameter("class2", class2);
  126. sqlFactory.addParameter("reason", reason);
  127. sqlFactory.addParameter("province", province);
  128. sqlFactory.addParameter("city", city);
  129. sqlFactory.addParameter("county", county);
  130. sqlFactory.addParameter("address", address);
  131. sqlFactory.addParameter("scenecontact", scenecontact);
  132. sqlFactory.addParameter("scenecontactrole", scenecontactrole);
  133. sqlFactory.addParameter("scenecontactphonenumber", scenecontactphonenumber);
  134. // 服务申请单号createBillCode("serviceorder")
  135. sqlFactory.addParameter("billno", createBillCode("serviceorder"));
  136. sqlFactory.addParameter("billdate", billdate.equals("") ? "null" : billdate);
  137. sqlFactory.addParameter("begdate", begdate.equals("") ? "null" : begdate);
  138. sqlFactory.addParameter("enddate", enddate.equals("") ? "null" : enddate);
  139. sqlFactory.addParameter("name", content.getStringValue("name"));
  140. sqlFactory.addParameter("phonenumber", content.getStringValue("phonenumber"));
  141. sqlFactory.addParameter("sa_customersid", content.getStringValue("sa_customersid"));
  142. sqlList.add(sqlFactory.getSQL());
  143. InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sa_serviceorderitems");
  144. insertSQL.setUniqueid(createTableID("sa_serviceorderitems"));
  145. insertSQL.setSiteid(siteid);
  146. insertSQL.setValue("sa_serviceorderid", sa_serviceorderid);
  147. insertSQL.setValue("itemid", itemid);
  148. insertSQL.setValue("sku", sku);
  149. insertSQL.setValue("cardno", cardno);
  150. insertSQL.setValue("reason", reason);
  151. sqlList.add(insertSQL.getSQL());
  152. dbConnect.runSqlUpdate("delete from sa_serviceorderitems where siteid='" + siteid + "' and sa_serviceorderid=" + sa_serviceorderid);
  153. dbConnect.runSqlUpdate(sqlList);
  154. content.put("sa_serviceorderid", sa_serviceorderid);
  155. return queryserviceorderMain();
  156. }
  157. /**
  158. * 服务分类查询
  159. **/
  160. @API(title = "服务分类查询", apiversion = R.ID20230206112003.v1.class)
  161. public String servicetypeList() throws YosException {
  162. Rows rows = new Rows();
  163. Row row1 = new Row();
  164. row1.put("value", "维修");
  165. Row row2 = new Row();
  166. row2.put("value", "安装");
  167. Row row3 = new Row();
  168. row3.put("value", "清洗");
  169. rows.add(row1);
  170. rows.add(row2);
  171. rows.add(row3);
  172. return getSucReturnObject().setData(rows).toString();
  173. }
  174. @API(title = "可选择序列号列表查询", apiversion = R.ID2025082210142103.v1.class)
  175. @CACHEING
  176. public String queryskuList() throws YosException {
  177. if (content.containsKey("sys_enterpriseid")) {
  178. sys_enterpriseid = content.getLong("sys_enterpriseid");
  179. }
  180. /*
  181. * 过滤条件设置
  182. */
  183. StringBuffer where = new StringBuffer(" 1=1 ");
  184. if (content.containsKey("where")) {
  185. JSONObject whereObject = content.getJSONObject("where");
  186. if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
  187. where.append(" and(");
  188. where.append("t2.itemname like'%").append(whereObject.getString("condition")).append("%' ");
  189. where.append("or t2.itemno like'%").append(whereObject.getString("condition")).append("%' ");
  190. where.append("or t1.sku like'%").append(whereObject.getString("condition")).append("%' ");
  191. where.append(")");
  192. }
  193. }
  194. // String hrid = content.getString("hrid");
  195. // SQLFactory sqlFactory = new SQLFactory(this, "审核订单列表查询", pageSize, pageNumber, pageSorting);
  196. // sqlFactory.addParameter_SQL("where", where);
  197. // sqlFactory.addParameter("siteid", siteid);
  198. // sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
  199. // Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL(false));
  200. QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_itemsku", "sku");
  201. querySQL.setTableAlias("t1");
  202. querySQL.addJoinTable(JOINTYPE.left, "plm_item", "t2", "t1.itemid=t2.itemid and t1.siteid=t2.siteid", "itemid", "itemno", "itemname", "model", "spec");
  203. querySQL.addJoinTable(JOINTYPE.left, "plm_unit", "t3", "t3.unitid=t2.unitid and t3.siteid=t2.siteid", "unitname");
  204. querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t4", "t4.sa_agentsid=t1.sa_agentsid and t4.siteid=t1.siteid", "agentnum");
  205. querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t5", "t5.sys_enterpriseid=t4.sys_enterpriseid and t5.siteid=t4.siteid", "contact", "phonenumber", "address");
  206. querySQL.addJoinTable(JOINTYPE.left, "sa_warrantycard", "t6", "t6.sku=t1.sku and t6.siteid=t1.siteid", "cardno", "begdate", "enddate");
  207. querySQL.addJoinTable(JOINTYPE.left, "sa_customers", "t7", "t6.sa_customersid=t7.sa_customersid and t6.siteid=t7.siteid", "sa_customersid");
  208. querySQL.addQueryFields("customername", "t7.name");
  209. querySQL.addQueryFields("customerphonenumber", "t7.phonenumber");
  210. querySQL.setSiteid(siteid);
  211. querySQL.setWhere("t1.sa_agentsid in (select sa_agentsid from sa_agents where sys_enterpriseid=" + sys_enterpriseid + ")");
  212. querySQL.setWhere(where.toString());
  213. querySQL.setPage(pageSize, pageNumber);
  214. Rows rows = querySQL.query();
  215. return getSucReturnObject().setData(rows).toString();
  216. }
  217. @API(title = "可选择订单列表查询", apiversion = R.ID20230206091503.v1.class)
  218. @CACHEING
  219. public String queryCheckOrderList() throws YosException {
  220. if (content.containsKey("sys_enterpriseid")) {
  221. sys_enterpriseid = content.getLong("sys_enterpriseid");
  222. }
  223. /*
  224. * 过滤条件设置
  225. */
  226. StringBuffer where = new StringBuffer(" 1=1 ");
  227. // if(content.getBooleanValue("istool")) {
  228. // where.append(" and t1.type ='工具借用单' ");
  229. // }else {
  230. // where.append(" and t1.type !='工具借用单' ");
  231. // }
  232. if (content.containsKey("where")) {
  233. JSONObject whereObject = content.getJSONObject("where");
  234. if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
  235. where.append(" and(");
  236. where.append("t1.sonum like'%").append(whereObject.getString("condition")).append("%' ");
  237. where.append(")");
  238. }
  239. if (whereObject.containsKey("sonum") && !"".equals(whereObject.getString("sonum"))) {
  240. where.append(" and t1.sonum ='").append(whereObject.getString("sonum")).append("' ");
  241. }
  242. if (whereObject.containsKey("begindate") && !"".equals(whereObject.getString("begindate"))) {
  243. where.append(" and t1.checkdate >='").append(whereObject.getString("begindate")).append("' ");
  244. }
  245. if (whereObject.containsKey("enddate") && !"".equals(whereObject.getString("enddate"))) {
  246. where.append(" and t1.checkdate <='").append(whereObject.getString("enddate")).append("' ");
  247. }
  248. }
  249. // String hrid = content.getString("hrid");
  250. SQLFactory sqlFactory = new SQLFactory(this, "审核订单列表查询");
  251. sqlFactory.addParameter_SQL("where", where);
  252. sqlFactory.addParameter("siteid", siteid);
  253. sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
  254. // Rows rows = dbConnect.runSqlQuery(sqlFactory);
  255. QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_site_parameter", "sys_site_parameterid");
  256. querySQL.setTableAlias("t0");
  257. querySQL.addJoinTable(JOINTYPE.right, sqlFactory, "t1", "t0.siteid='111'", "*");
  258. querySQL.setPage(pageSize, pageNumber);
  259. Rows rows = querySQL.query();
  260. return getSucReturnObject().setData(rows).toString();
  261. }
  262. @API(title = "服务申请单详情", apiversion = R.ID20230206091603.v1.class)
  263. @CACHEING
  264. public String queryserviceorderMain() throws YosException {
  265. Long sa_serviceorderid = content.getLong("sa_serviceorderid");
  266. SQLFactory sqlFactory = new SQLFactory(this, "服务申请单详情查询");
  267. sqlFactory.addParameter("sa_serviceorderid", sa_serviceorderid);
  268. sqlFactory.addParameter("siteid", siteid);
  269. Rows rows = dbConnect.runSqlQuery(sqlFactory);
  270. Row row = rows.isNotEmpty() ? rows.get(0) : new Row();
  271. // if(!row.isEmpty()) {
  272. // //服务申请单关联物料查询
  273. // SQLFactory sqlFactorytitem = new SQLFactory(this, "服务申请单关联物料查询");
  274. // sqlFactorytitem.addParameter("sa_serviceorderid", sa_serviceorderid);
  275. // sqlFactorytitem.addParameter("siteid", siteid);
  276. // row.put("titems",dbConnect.runSqlQuery(sqlFactorytitem));
  277. // //服务申请单关联工单查询
  278. // SQLFactory sqlFactoryworkorder = new SQLFactory(this, "服务申请单关联工单查询");
  279. // sqlFactoryworkorder.addParameter("sa_serviceorderid", sa_serviceorderid);
  280. // sqlFactoryworkorder.addParameter("siteid", siteid);
  281. // row.put("workorder",dbConnect.runSqlQuery(sqlFactoryworkorder));
  282. // }
  283. Rows backreasonRows = dbConnect.runSqlQuery("select backreason from sys_dataextend where ownertable='sa_serviceorder' and siteid='" + siteid + "' and backreason is not null and backreason <>'' and ownerid=" + sa_serviceorderid + " order by changedate desc");
  284. if (!backreasonRows.isEmpty()) {
  285. row.put("backreason", backreasonRows.get(0).getString("backreason"));
  286. } else {
  287. row.put("backreason", "");
  288. }
  289. return getSucReturnObject().setData(row).toString();
  290. }
  291. @API(title = "服务申请单详情(不验证token))", apiversion = R.ID20230217133003.v1.class, accesstoken = false)
  292. public String queryserviceorderMainWithoutToken() throws YosException {
  293. Long sa_serviceorderid = content.getLong("sa_serviceorderid");
  294. SQLFactory sqlFactory = new SQLFactory(this, "服务申请单详情查询2");
  295. sqlFactory.addParameter("sa_serviceorderid", sa_serviceorderid);
  296. Rows rows = dbConnect.runSqlQuery(sqlFactory);
  297. Row row = rows.isNotEmpty() ? rows.get(0) : new Row();
  298. if (!row.isEmpty()) {
  299. //服务申请单关联物料查询
  300. SQLFactory sqlFactorytitem = new SQLFactory(this, "服务申请单关联物料查询");
  301. sqlFactorytitem.addParameter("sa_serviceorderid", sa_serviceorderid);
  302. row.put("titems", dbConnect.runSqlQuery(sqlFactorytitem));
  303. //服务申请单关联工单查询
  304. SQLFactory sqlFactoryworkorder = new SQLFactory(this, "服务申请单关联工单查询");
  305. sqlFactoryworkorder.addParameter("sa_serviceorderid", sa_serviceorderid);
  306. row.put("workorder", dbConnect.runSqlQuery(sqlFactoryworkorder));
  307. }
  308. Rows backreasonRows = dbConnect.runSqlQuery("select backreason from sys_dataextend where ownertable='sa_serviceorder' and backreason is not null and backreason <>'' and ownerid=" + sa_serviceorderid + " order by changedate desc");
  309. if (!backreasonRows.isEmpty()) {
  310. row.put("backreason", backreasonRows.get(0).getString("backreason"));
  311. } else {
  312. row.put("backreason", "");
  313. }
  314. return getSucReturnObject().setData(row).toString();
  315. }
  316. @API(title = "服务申请单关联工单查询", apiversion = R.ID20230207154203.v1.class)
  317. @CACHEING
  318. public String queryserviceorderWorkorderList() throws YosException {
  319. Long sa_serviceorderid = content.getLong("sa_serviceorderid");
  320. StringBuffer where = new StringBuffer(" 1=1 ");
  321. // if (content.containsKey("where")) {
  322. // JSONObject whereObject = content.getJSONObject("where");
  323. // if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
  324. // where.append(" and(");
  325. // where.append("t1.billno like'%").append(whereObject.getString("condition")).append("%' ");
  326. // where.append("or t3.sonum like'%").append(whereObject.getString("condition")).append("%' ");
  327. // where.append("or t2.enterprisename like'%").append(whereObject.getString("condition")).append("%' ");
  328. // where.append("or t1.reason like'%").append(whereObject.getString("condition")).append("%' ");
  329. // where.append(")");
  330. // }
  331. // if (whereObject.containsKey("status") && !"".equals(whereObject.getString("status"))) {
  332. // where.append(" and t1.status ='").append(whereObject.getString("status")).append("' ");
  333. // }
  334. // }
  335. SQLFactory sqlFactory = new SQLFactory(this, "服务申请单关联工单查询");
  336. sqlFactory.addParameter("siteid", siteid);
  337. sqlFactory.addParameter("sa_serviceorderid", sa_serviceorderid);
  338. sqlFactory.addParameter_SQL("where", where);
  339. // Rows rows = dbConnect.runSqlQuery(sqlFactory);
  340. QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_site_parameter", "sys_site_parameterid");
  341. querySQL.setTableAlias("t0");
  342. querySQL.addJoinTable(JOINTYPE.right, sqlFactory, "t1", "t0.siteid='111'", "*");
  343. querySQL.setPage(pageSize, pageNumber);
  344. Rows rows = querySQL.query();
  345. return getSucReturnObject().setData(rows).toString();
  346. }
  347. @API(title = "查询服务申请单列表", apiversion = R.ID20230206091703.v1.class)
  348. @CACHEING
  349. public String queryserviceorderList() throws YosException {
  350. StringBuffer where = new StringBuffer(" 1=1 ");
  351. if (content.containsKey("where")) {
  352. JSONObject whereObject = content.getJSONObject("where");
  353. if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
  354. where.append(" and(");
  355. where.append("t1.servicetype like'%").append(whereObject.getString("condition")).append("%' ");
  356. where.append("or t2.enterprisename like'%").append(whereObject.getString("condition")).append("%' ");
  357. where.append("or t1.reason like'%").append(whereObject.getString("condition")).append("%' ");
  358. where.append("or t1.class1 like'%").append(whereObject.getString("condition")).append("%' ");
  359. where.append(")");
  360. }
  361. if (whereObject.containsKey("status") && !"".equals(whereObject.getString("status"))) {
  362. where.append(" and t1.status ='").append(whereObject.getString("status")).append("' ");
  363. }
  364. if (whereObject.containsKey("class1") && !"".equals(whereObject.getString("class1"))) {
  365. where.append(" and t1.class1 ='").append(whereObject.getString("class1")).append("' ");
  366. }
  367. if (whereObject.containsKey("servicetype") && !"".equals(whereObject.getString("servicetype"))) {
  368. where.append(" and t1.servicetype ='").append(whereObject.getString("servicetype")).append("' ");
  369. }
  370. if (whereObject.containsKey("status") && !"".equals(whereObject.getString("status"))) {
  371. where.append(" and t1.status ='").append(whereObject.getString("status")).append("' ");
  372. }
  373. if (whereObject.containsKey("begindate") && !"".equals(whereObject.getString("begindate"))) {
  374. where.append(" and t1.submitdate >='").append(whereObject.getString("begindate")).append("'");
  375. }
  376. if (whereObject.containsKey("enddate") && !"".equals(whereObject.getString("enddate"))) {
  377. where.append(" and t1.submitdate <='").append(whereObject.getString("enddate")).append("'");
  378. }
  379. if (whereObject.containsKey("submitdate") && !"".equals(whereObject.getString("submitdate"))) {
  380. where.append(" and t1.submitdate >='").append(whereObject.getString("submitdate")).append("'");
  381. where.append(" and t1.submitdate <='").append(getDate_Str(whereObject.getDate("submitdate"), 1)).append("'");
  382. }
  383. if (whereObject.containsKey("phonenumber") && !"".equals(whereObject.getString("phonenumber"))) {
  384. where.append(" and t1.scenecontactphonenumber ='").append(whereObject.getString("phonenumber")).append("'");
  385. }
  386. if (whereObject.containsKey("customerphonenumber") && !"".equals(whereObject.getString("customerphonenumber"))) {
  387. where.append(" and t1.phonenumber ='").append(whereObject.getString("customerphonenumber")).append("'");
  388. }
  389. if (whereObject.containsKey("sa_customersid") && !"".equals(whereObject.getString("sa_customersid"))) {
  390. where.append(" and t1.sa_customersid ='").append(whereObject.getString("sa_customersid")).append("'");
  391. }
  392. if(whereObject.getBooleanValue("noacceptCount")){
  393. where.append(" and t1.status = '待分配' ");
  394. }
  395. if(whereObject.getBooleanValue("noacceptCount24")){
  396. where.append(" and t1.status = '待分配' and t1.submitdate < DATE_SUB(NOW(), INTERVAL 24 HOUR) ");
  397. }
  398. if(whereObject.getBooleanValue("refuseacceptCount")){
  399. where.append(" and t1.status = '拒绝受理' ");
  400. }
  401. if(whereObject.getBooleanValue("processingCount")){
  402. where.append(" and (t1.status = '待服务' or t1.status='服务中') ");
  403. }
  404. }
  405. SQLFactory sqlFactory = new SQLFactory(this, "服务申请单列表查询");
  406. sqlFactory.addParameter("siteid", siteid);
  407. sqlFactory.addParameter_SQL("where", where);
  408. // Rows rows = dbConnect.runSqlQuery(sqlFactory);
  409. QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_site_parameter", "sys_site_parameterid");
  410. querySQL.setTableAlias("t0");
  411. querySQL.addJoinTable(JOINTYPE.right, sqlFactory, "t1", "t0.siteid='111'", "*");
  412. querySQL.setPage(pageSize, pageNumber);
  413. Rows rows = querySQL.query();
  414. return getSucReturnObject().setData(rows).toString();
  415. }
  416. @API(title = "服务申请单状态统计", apiversion = R.ID2025111809442603.v1.class)
  417. public String queryserviceorderStatusList() throws YosException {
  418. SQLFactory sqlFactory2 = new SQLFactory(this, "服务申请单状态统计");
  419. sqlFactory2.addParameter("siteid", siteid);
  420. sqlFactory2.addParameter_SQL("where", " 1=1 ");
  421. Rows rows_total = dbConnect.runSqlQuery(sqlFactory2.getSQL());
  422. return getSucReturnObject().setData(rows_total).toString();
  423. }
  424. @API(title = "查询服务申请单列表(不验证token)", apiversion = R.ID20230217100703.v1.class, accesstoken = false)
  425. public String queryserviceorderListWithoutToken() throws YosException {
  426. StringBuffer where = new StringBuffer(" 1=1 ");
  427. boolean isadmin = content.getBooleanValue("isadmin");
  428. if (!isadmin) {
  429. if (usertype == 1) {
  430. ArrayList<Long> sa_saleareaidsList = new ArrayList<>();
  431. sa_saleareaidsList.addAll(userInfo.getSaleAreaIds());
  432. sa_saleareaidsList.addAll(SaleArea.getSubSaleAreaIds(this, userInfo.getSaleAreaIds()));
  433. String where2 = " and t1.sys_enterpriseid in (select sys_enterpriseid from sys_enterprise_tradefield where siteid='" + siteid + "' and sa_saleareaid in " + sa_saleareaidsList + ")";
  434. where2 = where2.replace("[", "(").replace("]", ")");
  435. where.append(where2);
  436. } else if (usertype == 21 || usertype == 22) {
  437. where.append(" and t1.sys_enterpriseid=" + sys_enterpriseid + " ");
  438. }
  439. }
  440. if (content.containsKey("where")) {
  441. JSONObject whereObject = content.getJSONObject("where");
  442. if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
  443. where.append(" and(");
  444. where.append("t1.billno like'%").append(whereObject.getString("condition")).append("%' ");
  445. where.append("or t3.sonum like'%").append(whereObject.getString("condition")).append("%' ");
  446. where.append("or t2.enterprisename like'%").append(whereObject.getString("condition")).append("%' ");
  447. where.append("or t1.reason like'%").append(whereObject.getString("condition")).append("%' ");
  448. where.append(")");
  449. }
  450. if (whereObject.containsKey("status") && !"".equals(whereObject.getString("status"))) {
  451. where.append(" and t1.status ='").append(whereObject.getString("status")).append("' ");
  452. }
  453. if (whereObject.containsKey("begindate") && !"".equals(whereObject.getString("begindate"))) {
  454. where.append(" and t1.submitdate >='").append(whereObject.getString("begindate")).append("'");
  455. }
  456. if (whereObject.containsKey("enddate") && !"".equals(whereObject.getString("enddate"))) {
  457. where.append(" and t1.submitdate <='").append(whereObject.getString("enddate")).append("'");
  458. }
  459. if (whereObject.containsKey("phonenumber") && !"".equals(whereObject.getString("phonenumber"))) {
  460. where.append(" and t1.scenecontactphonenumber ='").append(whereObject.getString("phonenumber")).append("'");
  461. }
  462. }
  463. SQLFactory sqlFactory = new SQLFactory(this, "服务申请单列表查询2");
  464. //sqlFactory.addParameter("siteid", siteid);
  465. sqlFactory.addParameter_SQL("where", where);
  466. // Rows rows = dbConnect.runSqlQuery(sqlFactory);
  467. QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_site_parameter", "sys_site_parameterid");
  468. querySQL.setTableAlias("t0");
  469. querySQL.addJoinTable(JOINTYPE.right, sqlFactory, "t1", "t0.siteid='111'", "*");
  470. querySQL.setPage(pageSize, pageNumber);
  471. Rows rows = querySQL.query();
  472. return getSucReturnObject().setData(rows).toString();
  473. }
  474. @API(title = "工单模板查询", apiversion = R.ID20230206155803.v1.class)
  475. @CACHEING
  476. public String queryworkerordertemplate() throws YosException {
  477. Rows rows = dbConnect.runSqlQuery(
  478. "select sa_workorder_templateid,name,type from sa_workorder_template where siteid='" + siteid + "' and isused=1");
  479. return getSucReturnObject().setData(rows).toString();
  480. }
  481. @API(title = "服务申请单转工单", apiversion = R.ID20230207091003.v1.class)
  482. @CACHEING_CLEAN(apiversions = {R.ID20230206091603.v1.class, R.ID20230206091703.v1.class, R.ID20230206101303.v1.class, R.ID20230208140103.v1.class, R.ID20230208140203.v1.class,
  483. R.ID20230209091103.v1.class, R.ID20230207154203.v1.class, R.ID20230217100703.v1.class, R.ID20230217133003.v1.class})
  484. public String serviceorderToWorkorder() throws YosException {
  485. Long sa_serviceorderid = content.getLong("sa_serviceorderid");
  486. String type = content.getString("type");
  487. JSONArray projectlearders = content.getJSONArray("projectlearders");
  488. Long sa_workorder_templateid = content.getLongValue("sa_workorder_templateid");
  489. Rows rows = dbConnect
  490. .runSqlQuery("select * from sa_serviceorder where sa_serviceorderid ='"
  491. + sa_serviceorderid + "' and siteid='" + siteid + "'");
  492. Rows workorderRows = dbConnect
  493. .runSqlQuery("select sa_workorderid,status,billno from sa_workorder where sa_serviceorderid ='"
  494. + sa_serviceorderid + "' and siteid='" + siteid + "'");
  495. if (rows.isEmpty()) {
  496. return getErrReturnObject().setErrMsg("此服务单不存在").toString();
  497. } else {
  498. if (!rows.get(0).getString("status").equals("待受理")) {
  499. return getErrReturnObject().setErrMsg("非待受理状态无法生成工单").toString();
  500. }
  501. }
  502. if (!workorderRows.isEmpty()) {
  503. for (Row row : workorderRows) {
  504. if (row.getString("type").equals(type) && !row.getString("status").equals("作废")) {
  505. return getErrReturnObject().setErrMsg("已存在" + type + "类型的工单,无法继续生成此类型的工单").toString();
  506. }
  507. }
  508. }
  509. ArrayList<String> sqlList = new ArrayList<>();
  510. long sa_workorderid = createTableID("sa_workorder");
  511. SQLFactory sqlFactory = new SQLFactory(this, "服务工单新增");
  512. String billno = createBillCode("workorder");
  513. sqlFactory.addParameter("siteid", siteid);
  514. sqlFactory.addParameter("type", type);
  515. sqlFactory.addParameter("sa_serviceorderid", sa_serviceorderid);
  516. sqlFactory.addParameter("billno", billno);
  517. sqlFactory.addParameter("sys_enterpriseid", rows.get(0).getString("sys_enterpriseid"));
  518. sqlFactory.addParameter("sa_workorderid", sa_workorderid);
  519. sqlFactory.addParameter("reason", rows.get(0).getString("reason"));
  520. sqlFactory.addParameter("address", rows.get(0).getString("address"));
  521. sqlFactory.addParameter("isouritem", 1);
  522. sqlFactory.addParameter("startdate", StringUtils.isBlank(rows.get(0).getString("begdate")) ? (StringUtils.isBlank(rows.get(0).getString("billdate")) ? "NULL" : rows.get(0).getString("billdate")) : rows.get(0).getString("begdate"));
  523. sqlFactory.addParameter("scenecontact", rows.get(0).getString("scenecontact"));
  524. sqlFactory.addParameter("scenecontactrole", rows.get(0).getString("scenecontactrole"));
  525. sqlFactory.addParameter("scenecontactphonenumber", rows.get(0).getString("scenecontactphonenumber"));
  526. sqlFactory.addParameter("remarks", rows.get(0).getString("remarks"));
  527. sqlFactory.addParameter("status", "待接单");
  528. sqlFactory.addParameter("userid", userid);
  529. sqlFactory.addParameter("username", username);
  530. sqlFactory.addParameter("sa_workorder_templateid", sa_workorder_templateid);
  531. SQLFactory factory = new SQLFactory(this, "查询订单收货日期");
  532. factory.addParameter("sa_orderid", rows.get(0).getLong("sa_orderid"));
  533. factory.addParameter("siteid", siteid);
  534. Rows rowsreceive = dbConnect.runSqlQuery(factory.getSQL());
  535. if (!rowsreceive.isEmpty()) {
  536. //System.out.println(888);
  537. Date receivedate = rowsreceive.get(0).getDate("receivedate");
  538. Calendar calendar = Calendar.getInstance();
  539. calendar.add(Calendar.YEAR, -2);
  540. Date date = calendar.getTime();
  541. if (date.before(receivedate)) {
  542. sqlFactory.addParameter("inqualityguaranteeperiod", 1);
  543. } else {
  544. sqlFactory.addParameter("inqualityguaranteeperiod", 0);
  545. }
  546. } else {
  547. sqlFactory.addParameter("inqualityguaranteeperiod", 0);
  548. }
  549. sqlList.add("delete from sa_workorder_node where sa_workorderid=" + sa_workorderid);
  550. sqlList.addAll(getAddWorkorderNodeSql(sa_workorder_templateid, sa_workorderid));
  551. sqlList.add(sqlFactory.getSQL());
  552. sqlList.add("update sa_serviceorder set status='待服务' where sa_serviceorderid=" + sa_serviceorderid);
  553. if (projectlearders != null && !projectlearders.isEmpty()) {
  554. sqlList.add("delete from sys_datateam where ownertable='sa_workorder' and ownerid="
  555. + sa_workorderid + " and siteid='" + siteid + "'");
  556. for (Object obj : projectlearders) {
  557. sqlList.addAll(DataTeam.createTeamSQL(this, "sa_workorder", sa_workorderid, (int) obj));
  558. }
  559. }
  560. dbConnect.runSqlUpdate(sqlList);
  561. //发送短信
  562. Rows serviceorderRows = dbConnect.runSqlQuery("select t2.enterprisename,t1.billno,t1.submitby,t1.remarks from sa_serviceorder t1 left join sys_enterprise t2 on t1.sys_enterpriseid=t2.sys_enterpriseid and t1.siteid=t2.siteid where t1.sa_serviceorderid ='" + sa_serviceorderid + "' and t1.siteid='" + siteid + "'");
  563. for (Object obj : projectlearders) {
  564. int projectlearder = (int) obj;
  565. Rows workersRows = dbConnect.runSqlQuery("select t3.phonenumber from sys_hr t1 left join sys_users t3 on t1.userid = t3.userid left join sys_hr t4 on t1.siteid = t4.siteid and t1.reporthrid = t4.hrid where t1.siteid = '" + siteid + "' and t1.isworker=1 and t1.userid=" + projectlearder);
  566. if (!workersRows.isEmpty()) {
  567. if (StringUtils.isNotBlank(workersRows.get(0).getString("phonenumber"))) {
  568. Sms sms = new Sms();
  569. sms.sendout(Sms.SmsType.Notice, siteid, workersRows.get(0).getString("phonenumber"), "工单号:" + billno + "已指派请处理,客户名称:" + (StringUtils.isBlank(serviceorderRows.get(0).getString("enterprisename")) ? "" : serviceorderRows.get(0).getString("enterprisename"))
  570. + ",提交人:" + serviceorderRows.get(0).getString("submitby") + ",备注:" + serviceorderRows.get(0).getString("remarks"));
  571. }
  572. }
  573. }
  574. return getSucReturnObject().setData(sa_workorderid).toString();
  575. }
  576. @API(title = "重新指派工单", apiversion = R.ID2025101710510903.v1.class)
  577. @CACHEING_CLEAN(apiversions = {serviceorder.class, workorder.class,restcontroller.sale.serviceorder.serviceorder.class})
  578. public String reAssigningWorkorder() throws YosException {
  579. Long sa_workorderid = content.getLong("sa_workorderid");
  580. JSONArray projectlearders = content.getJSONArray("projectlearders");
  581. boolean ismanage = content.getBooleanValue("ismanage");
  582. ArrayList<String> sqlList = new ArrayList<>();
  583. Rows rows = dbConnect
  584. .runSqlQuery("select status,billno from sa_workorder where sa_workorderid ='"
  585. + sa_workorderid + "' and siteid='" + siteid + "'");
  586. for (Row row : rows) {
  587. if (row.getString("status").equals("已完工")) {
  588. return getErrReturnObject().setErrMsg("单号为:【" + row.getString("billno") + "】的工单为已完工状态,无法重新指派工单")
  589. .toString();
  590. }
  591. }
  592. if(!ismanage){
  593. Rows datateamrows =dbConnect.runSqlQuery("select * from sys_datateam where ownertable='sa_workorder' and ownerid="
  594. + sa_workorderid + " and siteid='" + siteid + "'");
  595. if(datateamrows.isNotEmpty()){
  596. return getErrReturnObject().setErrMsg("该任务已由其他同事负责推进").toString();
  597. }
  598. }
  599. sqlList.add("update sa_workorder set status='待接单' where sa_workorderid ='"
  600. + sa_workorderid + "' and siteid='" + siteid + "'");
  601. sqlList.add("delete from sys_datateam where ownertable='sa_workorder' and ownerid="
  602. + sa_workorderid + " and siteid='" + siteid + "'");
  603. if (projectlearders != null && !projectlearders.isEmpty()) {
  604. for (Object obj : projectlearders) {
  605. sqlList.addAll(DataTeam.createTeamSQL(this, "sa_workorder", sa_workorderid, (int) obj));
  606. }
  607. }
  608. dbConnect.runSqlUpdate(sqlList);
  609. return getSucReturnObject().toString();
  610. }
  611. @API(title = "删除", apiversion = R.ID20230206091803.v1.class)
  612. @CACHEING_CLEAN(apiversions = {R.ID20230206091603.v1.class, R.ID20230206091703.v1.class, R.ID20230206101303.v1.class, R.ID20230217100703.v1.class, R.ID20230217133003.v1.class})
  613. public String delete() throws YosException {
  614. JSONArray sa_serviceorderids = content.getJSONArray("sa_serviceorderids");
  615. BatchDeleteErr batchDeleteErr = BatchDeleteErr.create(this, sa_serviceorderids.size());
  616. for (Object o : sa_serviceorderids) {
  617. long sa_serviceorderid = Long.parseLong(o.toString());
  618. Rows RowsStatus = dbConnect
  619. .runSqlQuery("select sa_serviceorderid,status from sa_serviceorder where siteid='" + siteid
  620. + "' and sa_serviceorderid='" + sa_serviceorderid + "'");
  621. if (RowsStatus.isNotEmpty()) {
  622. if (!RowsStatus.get(0).getString("status").equals("新建")) {
  623. //batchDeleteErr.addErr(sa_serviceorderid, "非新建状态的服务申请单无法删除");
  624. continue;
  625. }
  626. }
  627. dbConnect.runSqlUpdate("delete from sa_serviceorder where siteid='" + siteid + "' and sa_serviceorderid="
  628. + sa_serviceorderid);
  629. }
  630. return batchDeleteErr.getReturnObject().toString();
  631. }
  632. @API(title = "发送手机验证码", apiversion = R.ID20230215173103.v1.class, accesstoken = false)
  633. public String sendMessage() throws YosException {
  634. String customerphone = "";
  635. long sa_workorderid=content.getLong("sa_workorderid");
  636. Rows rows = dbConnect.runSqlQuery("select t1.type,t2.* from sa_workorder t1 inner join sa_serviceorder t2 on t1.sa_serviceorderid=t2.sa_serviceorderid and t1.siteid=t2.siteid where t1.sa_workorderid="+sa_workorderid);
  637. if(rows.isEmpty()){
  638. return getErrReturnObject().setErrMsg("该工单不存在").toString();
  639. }
  640. long createuserid = rows.get(0).getLong("createuserid");
  641. String type=rows.get(0).getString("type");
  642. Rows userrows =dbConnect.runSqlQuery("select t2.usertype,t1.phonenumber from sys_users t1 inner join sys_usersite t2 on t1.userid = t2.userid where t2.siteid = '"+siteid+"' and t1.userid="+createuserid);
  643. long usertype = 0;
  644. if(userrows.isNotEmpty()){
  645. usertype=userrows.get(0).getLong("usertype");
  646. }else{
  647. //return getErrReturnObject().setErrMsg("工单创建人信息有误").toString();
  648. }
  649. if(usertype==99){
  650. customerphone=userrows.get(0).getString("phonenumber");
  651. }else{
  652. if(type.equals("安装")){
  653. customerphone=rows.get(0).getString("scenecontactphonenumber");
  654. }
  655. }
  656. if (!Pattern.matches("^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$", customerphone)) {
  657. return getErrReturnObject().setErrMsg("手机格式有误").toString();
  658. }
  659. String verificationCode = createVerificationCode();
  660. Sms sms = new Sms();
  661. sms.sendout(Sms.SmsType.PassWord,customerphone, Parameter.getString("chuanglan_sms_model_password"), new String[]{verificationCode});
  662. message_map.put(customerphone, new VerificationManage(verificationCode));
  663. Row row = new Row();
  664. if (!BaseClass.isdebug() && !Arrays.asList(Parameter.getString("system_invalidate_phonenumber").split(",")).contains(customerphone)) {
  665. row.put("code", 1);
  666. row.put("msg", "手机验证码已发送,请注意查收!");
  667. }else{
  668. row.put("code", 1);
  669. row.put("msg", "手机验证码为:"+verificationCode);
  670. }
  671. return getSucReturnObject().setData(row).toString();
  672. }
  673. /**
  674. * 验证码校验
  675. **/
  676. @API(title = "发送手机验证码", apiversion = R.ID20230215173203.v1.class, accesstoken = false)
  677. public String checkVerificationCode() throws YosException {
  678. String customerphone = "";
  679. long sa_workorderid=content.getLong("sa_workorderid");
  680. Rows rows = dbConnect.runSqlQuery("select t1.type,t2.* from sa_workorder t1 inner join sa_serviceorder t2 on t1.sa_serviceorderid=t2.sa_serviceorderid and t1.siteid=t2.siteid where t1.sa_workorderid="+sa_workorderid);
  681. if(rows.isEmpty()){
  682. return getErrReturnObject().setErrMsg("该工单不存在").toString();
  683. }
  684. long createuserid = rows.get(0).getLong("createuserid");
  685. String type=rows.get(0).getString("type");
  686. Rows userrows =dbConnect.runSqlQuery("select t2.usertype,t1.phonenumber from sys_users t1 inner join sys_usersite t2 on t1.userid = t2.userid where t2.siteid = '"+siteid+"' and t1.userid="+createuserid);
  687. long usertype = 0;
  688. if(userrows.isNotEmpty()){
  689. usertype=userrows.get(0).getLong("usertype");
  690. }else{
  691. //return getErrReturnObject().setErrMsg("工单创建人信息有误").toString();
  692. }
  693. if(usertype==99){
  694. customerphone=userrows.get(0).getString("phonenumber");
  695. }else{
  696. if(type.equals("安装")){
  697. customerphone=rows.get(0).getString("scenecontactphonenumber");
  698. }
  699. }
  700. String code = content.getStringValue("code");
  701. if (!message_map.containsKey(customerphone) || !message_map.get(customerphone).check(code)) {
  702. return getErrReturnObject().setErrMsg("验证码错误或者过期").toString();
  703. }
  704. return getSucReturnObject().toString();
  705. }
  706. private ArrayList<String> getAddWorkorderNodeSql(long sa_workorder_templateid, long sa_workorderid)
  707. throws YosException {
  708. ArrayList sqList = new ArrayList<String>();
  709. Rows rows = dbConnect.runSqlQuery(
  710. "select t1.sa_workorder_template_worksid,t1.sequence,t1.parentid,t2.* from sa_workorder_template_works t1 inner join sa_workpreset t2 on t1.siteid=t2.siteid and t1.sa_workpresetid=t2.sa_workpresetid where t1.siteid='"
  711. + siteid + "' and t1.sa_workorder_templateid =" + sa_workorder_templateid + " order by t1.sequence asc");
  712. RowsMap rowsMap = rows.toRowsMap("parentid");
  713. if (!rowsMap.get(0).isEmpty()) {
  714. for (Row row : rowsMap.get(0)) {
  715. workpresetInfo workpresetInfo = new workpresetInfo();
  716. workpresetInfo.setWorkname(row.getString("workname"));
  717. workpresetInfo.setRemarks(row.getString("remarks"));
  718. workpresetInfo.setAdditem(row.getLong("additem"));
  719. workpresetInfo.setAddperson(row.getLong("addperson"));
  720. workpresetInfo.setAmountpay(row.getLong("amountpay"));
  721. workpresetInfo.setConfirm(row.getLong("confirm"));
  722. workpresetInfo.setConfirm_options(JSONArray.parseArray(row.getString("confirm_options")));
  723. workpresetInfo.setContractupload(row.getLong("contractupload"));
  724. workpresetInfo.setFileupload(row.getLong("fileupload"));
  725. workpresetInfo.setItemtype(row.getString("itemtype"));
  726. workpresetInfo.setRequired(row.getLong("required"));
  727. workpresetInfo.setTextedit(row.getLong("textedit"));
  728. workpresetInfo.setSignature(row.getLong("signature"));
  729. workpresetInfo.setPasscheck(row.getLong("passcheck"));
  730. workpresetInfo.setQuestionedit(row.getLong("questionedit"));
  731. workpresetInfo.setQuestionoption(row.getString("questionoption"));
  732. String workpresetjson = JSONObject.toJSONString(workpresetInfo);
  733. SQLFactory sqlFactory = new SQLFactory(this, "服务工单流程节点新增");
  734. long sa_workorder_nodeid = createTableID("sa_workorder_node");
  735. sqlFactory.addParameter("sa_workorder_nodeid", sa_workorder_nodeid);
  736. sqlFactory.addParameter("sa_workorderid", sa_workorderid);
  737. sqlFactory.addParameter("siteid", siteid);
  738. sqlFactory.addParameter("parentid", 0);
  739. sqlFactory.addParameter("workpresetjson", workpresetjson);
  740. sqlFactory.addParameter("sequence", row.getLong("sequence"));
  741. sqlFactory.addParameter("userid", userid);
  742. sqlFactory.addParameter("username", username);
  743. sqList.add(sqlFactory.getSQL());
  744. if (!rowsMap.get(row.getLong("sa_workorder_template_worksid")).isEmpty()) {
  745. for (Row row2 : rowsMap.get(row.getLong("sa_workorder_template_worksid"))) {
  746. workpresetInfo workpresetInfo1 = new workpresetInfo();
  747. workpresetInfo1.setWorkname(row2.getString("workname"));
  748. workpresetInfo1.setRemarks(row2.getString("remarks"));
  749. workpresetInfo1.setAdditem(row2.getLong("additem"));
  750. workpresetInfo1.setAddperson(row2.getLong("addperson"));
  751. workpresetInfo1.setAmountpay(row2.getLong("amountpay"));
  752. workpresetInfo1.setConfirm(row2.getLong("confirm"));
  753. workpresetInfo1.setConfirm_options(JSONArray.parseArray(row2.getString("confirm_options")));
  754. workpresetInfo1.setContractupload(row2.getLong("contractupload"));
  755. workpresetInfo1.setFileupload(row2.getLong("fileupload"));
  756. workpresetInfo1.setItemtype(row2.getString("itemtype"));
  757. workpresetInfo1.setRequired(row2.getLong("required"));
  758. workpresetInfo1.setTextedit(row2.getLong("textedit"));
  759. workpresetInfo1.setSignature(row2.getLong("signature"));
  760. workpresetInfo1.setPasscheck(row.getLong("passcheck"));
  761. workpresetInfo1.setQuestionedit(row.getLong("questionedit"));
  762. workpresetInfo1.setQuestionoption(row.getString("questionoption"));
  763. String workpresetjson1 = JSONObject.toJSONString(workpresetInfo1);
  764. SQLFactory sqlFactory1 = new SQLFactory(this, "服务工单流程节点新增");
  765. sqlFactory1.addParameter("sa_workorder_nodeid", createTableID("sa_workorder_node"));
  766. sqlFactory1.addParameter("sa_workorderid", sa_workorderid);
  767. sqlFactory1.addParameter("siteid", siteid);
  768. sqlFactory1.addParameter("parentid", sa_workorder_nodeid);
  769. sqlFactory1.addParameter("workpresetjson", workpresetjson1);
  770. sqlFactory1.addParameter("sequence", row2.getLong("sequence"));
  771. sqlFactory1.addParameter("userid", userid);
  772. sqlFactory1.addParameter("username", username);
  773. sqList.add(sqlFactory1.getSQL());
  774. }
  775. }
  776. }
  777. }
  778. return sqList;
  779. }
  780. // private String sendMessage_0(String phone, String verificationCode) throws Exception {
  781. // HttpURLRest rest = new HttpURLRest("http://smssh1.253.com/msg/v1/send/json");
  782. // rest.addHeader("Content-type", "applica分配tion/json");
  783. // JSONObject jsonObject = new JSONObject();
  784. // jsonObject.put("account", "N3147701");
  785. // jsonObject.put("password", "4ClGyab6fv6a87");
  786. // jsonObject.put("msg", "【浙江美大】您好,您的验证码是" + verificationCode);
  787. // jsonObject.put("phone", phone);
  788. // rest.addRawBody(jsonObject.toString());
  789. // String s = rest.post();
  790. //// PaoSetRemote verCodehistory = getpaoset("VerCodehistory");
  791. //// PaoRemote remote = verCodehistory.addAtEnd();
  792. //// remote.setValue("phone",phone);
  793. //// remote.setValue("msg","【Banninger】您好,您的验证码是"+verificationCode);
  794. //// remote.setValue("content",s);
  795. //// verCodehistory.save();
  796. // return s;
  797. // }
  798. public static String createVerificationCode() {
  799. String s = "";
  800. while (s.length() < 6)
  801. s += (int) (Math.random() * 10);
  802. return s;
  803. }
  804. }