IndexController.java 58 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302
  1. package com.szwl.controller;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  6. import com.szwl.model.bean.CommonParamVo;
  7. import com.szwl.model.bean.EquipmentDTO;
  8. import com.szwl.model.bean.EquipmentVo;
  9. import com.szwl.model.bean.ProductVo;
  10. import com.szwl.model.bo.JsonMessage;
  11. import com.szwl.model.bo.JsonUtils;
  12. import com.szwl.model.entity.*;
  13. import com.szwl.model.utils.AdminUtils;
  14. import com.szwl.model.utils.PushUtils;
  15. import com.szwl.service.*;
  16. import com.szwl.service.es.EsTEquipmentService;
  17. import io.swagger.annotations.Api;
  18. import io.swagger.annotations.ApiOperation;
  19. import org.apache.commons.io.IOUtils;
  20. import org.apache.commons.lang.StringUtils;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.boot.autoconfigure.kafka.KafkaProperties;
  23. import org.springframework.web.bind.annotation.*;
  24. import javax.servlet.http.HttpServletRequest;
  25. import javax.servlet.http.HttpServletResponse;
  26. import java.io.*;
  27. import java.math.BigDecimal;
  28. import java.util.*;
  29. @Api(value = "/api/app_equipment/index", tags = {"设备信息上传接口"})
  30. @RestController
  31. @RequestMapping("/api/app_equipment/index")
  32. public class IndexController { ;
  33. @Autowired
  34. TAdminService adminService;
  35. @Autowired
  36. TEquipmentService equipmentService;
  37. @Autowired
  38. TEquipmentApplyService equipmentApplyService;
  39. @Autowired
  40. TProductService productService;
  41. @Autowired
  42. TEquipmentDescService equipmentDescService;
  43. @Autowired
  44. EsTEquipmentService esTEquipmentService;
  45. @Autowired
  46. TParametersService parametersService;
  47. @ApiOperation(value = "心跳")
  48. @PostMapping("/heart.htm")
  49. public JsonMessage heart(@RequestBody EquipmentVo equipmentVo) {
  50. String clientId = equipmentVo.getClientId();
  51. Date lastUpdateTime = equipmentVo.getLastUpdateTime();
  52. Double longitude = equipmentVo.getLongitude();
  53. Double latitude = equipmentVo.getLatitude();
  54. String cabinetHd = equipmentVo.getCabinetHd();
  55. String cabinetTm = equipmentVo.getCabinetTm();
  56. String furnaceSp = equipmentVo.getFurnaceSp();
  57. String furnaceTm = equipmentVo.getFurnaceTm();
  58. String gtClientId = equipmentVo.getGtClientId();
  59. String volume = equipmentVo.getVolume();
  60. Integer eqeStatus = equipmentVo.getEqeStatus();
  61. Boolean is_sleep = equipmentVo.getIs_sleep();
  62. String netWorkingMode = equipmentVo.getNetWorkingMode();
  63. //有记录,则进行修改
  64. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  65. query.eq(TEquipment::getClientId,clientId);
  66. List<TEquipment> list = equipmentService.list(query);
  67. TEquipment _new = list.get(0);
  68. // Equipment _new = equipmentService.findByClientId(clientId);
  69. if (_new != null) {
  70. _new.setNetWorkingMode(netWorkingMode);
  71. if(StringUtils.isNotEmpty(cabinetTm)){
  72. _new.setCabinetTm(cabinetTm);
  73. }
  74. if(StringUtils.isNotEmpty(cabinetHd)){
  75. _new.setCabinetHd(cabinetHd);
  76. }
  77. if(StringUtils.isNotEmpty(furnaceSp)){
  78. _new.setFurnaceSp(furnaceSp);
  79. }
  80. if(StringUtils.isNotEmpty(furnaceTm)){
  81. _new.setFurnaceTm(furnaceTm);
  82. }
  83. _new.setLastUpdateTime(lastUpdateTime);
  84. // _new.setLongitude(longitude);
  85. if(eqeStatus!=null){
  86. _new.setEqeStatus(eqeStatus);
  87. }
  88. if(is_sleep!=null){
  89. _new.setIsSleep(is_sleep);
  90. }
  91. if(!StringUtils.isEmpty(furnaceTm)){
  92. int fur = Integer.parseInt(furnaceTm);
  93. if(_new.getEqeStatus()==0&&fur>150){
  94. _new.setEqeStatus(1);
  95. }
  96. if(_new.getEqeStatus()==null&&fur>150){
  97. _new.setEqeStatus(1);
  98. }
  99. }
  100. if(!StringUtils.isEmpty(volume)){
  101. _new.setVolume(volume);
  102. }
  103. // _new.setLatitude(latitude);
  104. _new.setGtClientId(gtClientId);
  105. _new.setModifyDate(new Date());
  106. equipmentService.updateById(_new);
  107. TEquipmentDesc equipmentDesc = equipmentDescService.getById(_new.getId());
  108. if(StringUtils.isNotEmpty(equipmentVo.getBlueSugar())){
  109. equipmentDesc.setBlueSugar(equipmentVo.getBlueSugar());
  110. }
  111. if(StringUtils.isNotEmpty(equipmentVo.getRedSugar())){
  112. equipmentDesc.setRedSugar(equipmentVo.getRedSugar());
  113. }
  114. if(StringUtils.isNotEmpty(equipmentVo.getYellowSugar())){
  115. equipmentDesc.setYellowSugar(equipmentVo.getYellowSugar());
  116. }
  117. if(StringUtils.isNotEmpty(equipmentVo.getWhiteSugar())){
  118. equipmentDesc.setWhiteSugar(equipmentVo.getWhiteSugar());
  119. }
  120. if(StringUtils.isNotEmpty(equipmentVo.getWater())){
  121. equipmentDesc.setWater(equipmentVo.getWater());
  122. }
  123. if(StringUtils.isNotEmpty(equipmentVo.getWasteWater())){
  124. equipmentDesc.setWasteWater(equipmentVo.getWasteWater());
  125. }
  126. if(StringUtils.isNotEmpty(equipmentVo.getStick())){
  127. equipmentDesc.setStick(equipmentVo.getStick());
  128. }
  129. equipmentDescService.updateById(equipmentDesc);
  130. return JsonMessage.success("心跳成功");
  131. }
  132. return JsonMessage.error("心跳失败");
  133. }
  134. /**
  135. * 设备申请
  136. *
  137. * @param clientId 个推
  138. * @param managerId 管理系统id
  139. * @return
  140. */
  141. @ApiOperation(value = "设备申请")
  142. // @PostMapping("/init3")
  143. @PostMapping("/initNew.htm")
  144. // public JsonMessage initNew(String clientId, String managerId, String gtClientId,String equimentType,String machineType) {
  145. public JsonMessage initNew(String clientId, String managerId, String gtClientId,String equimentType) {
  146. String machineType = "0";
  147. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  148. query.eq(TEquipment::getClientId,clientId);
  149. List<TEquipment> list = equipmentService.list(query);
  150. if (list.size() > 0) {
  151. TEquipment equipment = list.get(0);
  152. String managerId1 = equipment.getManagerId();
  153. if(!managerId.equals(managerId1)){
  154. return JsonMessage.error("该设备未脱离");
  155. }else {
  156. return JsonMessage.error("该设备已经初始化");
  157. }
  158. }
  159. if (StringUtils.isEmpty(gtClientId)) {
  160. return JsonMessage.error("设备不能为空");
  161. }
  162. TEquipmentApply equipmentApply = new TEquipmentApply();
  163. equipmentApply.setStatusType(1);
  164. equipmentApply.setClientId(clientId);
  165. equipmentApply.setManagerId(managerId);
  166. equipmentApply.setGtClientId(gtClientId);
  167. Long adminId = AdminUtils.decrypt(false, managerId);
  168. TAdmin admin = adminService.getById(adminId);
  169. if (admin == null) {
  170. return JsonMessage.error("找不到商家");
  171. }
  172. //所属商家
  173. String username = admin.getUsername();
  174. equipmentApply.setAdminId(adminId);
  175. equipmentApply.setAdminUserName(username);
  176. equipmentApply.setEquimentType(equimentType);
  177. equipmentApply.setMachineType(machineType);
  178. equipmentApply.setCreateDate(new Date());
  179. equipmentApply.setModifyDate(new Date());
  180. equipmentApplyService.save(equipmentApply);
  181. if(String.valueOf(adminId).equals("3")||String.valueOf(adminId).equals("31")||String.valueOf(adminId).equals("506")||String.valueOf(adminId).equals("1090")){
  182. Long id = equipmentApply.getId();
  183. agree(id);
  184. return JsonMessage.success("设备申请成功");
  185. }
  186. Date applyStartTime = admin.getApplyStartTime();
  187. Date applyEndTime = admin.getApplyEndTime();
  188. Date now = new Date();
  189. if(now.getTime()>applyStartTime.getTime()&&now.getTime()<applyEndTime.getTime()){
  190. Long id = equipmentApply.getId();
  191. agree(id);
  192. return JsonMessage.success("设备申请成功");
  193. }
  194. return JsonMessage.success("设备申请中,请耐心等待");
  195. }
  196. private void agree(Long id) {
  197. String status = "agreed";
  198. if (null != id) {
  199. TEquipmentApply equipmentApply = equipmentApplyService.getById(id);
  200. if (equipmentApply != null) {
  201. if (!StringUtils.isEmpty(status)) {
  202. if (status.equals("agreed")) {
  203. String clientId = equipmentApply.getClientId();
  204. //判断是否设备初始化
  205. // if (equipmentService.findByClientId(clientId) != null) {
  206. // addFlashMessage(redirectAttributes, Message.error("该设备已经初始化"));
  207. // return "redirect:listInit.htm";
  208. // }
  209. Long adminId = equipmentApply.getAdminId();
  210. String adminLevel = equipmentApply.getAdminLevel();
  211. String adminUserName = equipmentApply.getAdminUserName();
  212. String gtClientId = equipmentApply.getGtClientId();
  213. String equimentType = equipmentApply.getEquimentType();
  214. String machineType = equipmentApply.getMachineType();
  215. String old = "";
  216. // ArrayList<Filter> filters = new ArrayList<>();
  217. // filters.add(Filter.eq("clientId", clientId + "xxx"));
  218. // List<TEquipment> list = equipmentService.findList(null, filters, null);
  219. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  220. query.like(TEquipment::getClientId,clientId+"xxx");
  221. List<TEquipment> list = equipmentService.list(query);
  222. equipmentApply.setStatusType(3);
  223. if (list.size() > 0) {
  224. //表示设备第二次申请了:主要为了区分脱离以及初始化
  225. old = "1";
  226. //重新修改设备名称
  227. TEquipment equipment = list.get(0);
  228. equipment.setClientId(clientId);
  229. equipment.setGtClientId(gtClientId);
  230. equipment.setAdminId(adminId);
  231. equipment.setAdminLevel(adminLevel);
  232. equipment.setAdminUserName(adminUserName);
  233. equipment.setMachineType(machineType);
  234. if(equipmentApply.getEquimentType().equals("MG320-1")){
  235. if(!equipmentApply.getEquimentType().equals(equipment.getEquimentType())&&equipment.getEquimentType().equals("MG320")){
  236. // List<Filter> filter = new ArrayList<>();
  237. // filter.add(Filter.eq("equipmentId", equipment.getId()));
  238. // List<Product> productList = productService.findList(null, filter, null);
  239. LambdaQueryWrapper<TProduct> queryProduct = Wrappers.lambdaQuery();
  240. queryProduct.eq(TProduct::getEquipmentId,equipment.getId());
  241. List<TProduct> productList = productService.list(queryProduct);
  242. if(productList.size()==18){
  243. //从18种变成30种花型
  244. saveProductMG12(equipment.getId());
  245. }
  246. //从18种变成30种花型
  247. // saveProductMG12(equipment.getId());
  248. }
  249. equipment.setEquimentType("MG320");
  250. }
  251. if(equipmentApply.getEquimentType().equals("MG330")){
  252. equipment.setEquimentType("MG330");
  253. }
  254. equipmentService.updateById(equipment);
  255. // String data = com.alibaba.fastjson.JSON.toJSONString(equipment);
  256. try {
  257. // String result = HttpClientUtils.sentData(HttpClientUtils.Update_Equipment_Url, data);
  258. // if(!result.equals("200")){
  259. // result = HttpClientUtils.sentData(HttpClientUtils.Update_Equipment_Url, data);
  260. // if(!result.equals("200")){
  261. // result = HttpClientUtils.sentData(HttpClientUtils.Update_Equipment_Url, data);
  262. // if(!result.equals("200")){
  263. // }
  264. // }
  265. // }
  266. esTEquipmentService.updateDataById(equipment);
  267. }catch (Exception e) {
  268. e.printStackTrace();
  269. }
  270. // addFlashMessage(redirectAttributes, SUCCESS_MESSAGE);
  271. equipmentService.sentMessage(clientId,PushUtils.buildJson("statusType", "agreed" + old).toString());
  272. PushUtils.push(equipmentApply.getGtClientId(), "【棉花糖】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString());
  273. // equipmentApplyService.update(equipmentApply);
  274. if(equipment.getEquimentType().equals("280")){
  275. equipmentService.sentMessage(clientId,PushUtils.buildJson("endDate",String.valueOf(equipment.getEndDate().getTime()) ).toString());
  276. PushUtils.push(equipmentApply.getGtClientId(), "", "", PushUtils.buildJson("endDate",String.valueOf(equipment.getEndDate().getTime()) ).toString());
  277. }
  278. // equipmentService.sentMessage(clientId,PushUtils.buildJson("endDate",String.valueOf(equipment.getEndDate().getTime()) ).toString());
  279. // PushUtils.push(equipmentApply.getGtClientId(), "", "", PushUtils.buildJson("endDate",String.valueOf(equipment.getEndDate().getTime()) ).toString());
  280. // return "redirect:listInit.htm";
  281. return;
  282. }else{
  283. TEquipment equipment = new TEquipment();
  284. equipment.setCreateDate(new Date());
  285. equipment.setModifyDate(new Date());
  286. equipment.setClientId(clientId);
  287. equipment.setManagerId(equipmentApply.getManagerId());
  288. equipment.setAdminId(adminId);
  289. equipment.setAdminLevel(adminLevel);
  290. equipment.setGtClientId(gtClientId);
  291. equipment.setAdminUserName(adminUserName);
  292. equipment.setIsUsing(true);
  293. equipment.setIsNetWork(true);
  294. equipment.setGuestPwd("123456");
  295. equipment.setAdminPwd("123456");
  296. equipment.setChannel("1");
  297. equipment.setProductTotal(0);
  298. //设置默认规则
  299. equipment.setTimeRuleId(Long.valueOf(1));
  300. if(equimentType.equals("MG320-1")){
  301. equipment.setEquimentType("MG320");
  302. }else {
  303. equipment.setEquimentType(equimentType);
  304. }
  305. if(equipmentApply.getEquimentType().equals("MG330")){
  306. equipment.setEquimentType("MG330");
  307. }
  308. if(!StringUtils.isEmpty(equimentType)&&equimentType.equals("MG280")){
  309. Long monthBegin = getMonthBegin(new Date());
  310. long time = new Date().getTime();
  311. if(time<monthBegin){
  312. equipment.setEndDate(new Date(monthBegin));
  313. }else{
  314. Date date = nextMonthDate();
  315. equipment.setEndDate(date);
  316. }
  317. equipmentService.sentMessage(clientId,PushUtils.buildJson("endDate",String.valueOf(equipment.getEndDate().getTime()) ).toString());
  318. PushUtils.push(equipmentApply.getGtClientId(), "", "", PushUtils.buildJson("endDate",String.valueOf(equipment.getEndDate().getTime()) ).toString());
  319. }
  320. equipmentService.save(equipment);
  321. equipmentService.sentMessage(clientId,PushUtils.buildJson("statusType", "agreed" + old).toString());
  322. PushUtils.push(equipmentApply.getGtClientId(), "【棉花糖】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString());
  323. // Equipment byClientId = equipmentService.findByClientId(equipment.getClientId());
  324. // String data = com.alibaba.fastjson.JSON.toJSONString(byClientId);
  325. LambdaQueryWrapper<TEquipment> query1 = Wrappers.lambdaQuery();
  326. query1.eq(TEquipment::getClientId,clientId);
  327. List<TEquipment> list1 = equipmentService.list(query1);
  328. try {
  329. if(list1.size()>0){
  330. TEquipment tEquipment = list1.get(0);
  331. esTEquipmentService.insertData(tEquipment);
  332. }
  333. // String result = HttpClientUtils.sentData(HttpClientUtils.Equipment_Url, data);
  334. // if(!result.equals("200")){
  335. // byClientId = equipmentService.findByClientId(equipment.getClientId());
  336. // result = HttpClientUtils.sentData(HttpClientUtils.Equipment_Url, data);
  337. // if(!result.equals("200")){
  338. // byClientId = equipmentService.findByClientId(equipment.getClientId());
  339. // result = HttpClientUtils.sentData(HttpClientUtils.Equipment_Url, data);
  340. // if(!result.equals("200")){
  341. // }
  342. // }
  343. // }
  344. }catch (Exception e) {
  345. e.printStackTrace();
  346. }
  347. TEquipmentDesc equipmentDesc = new TEquipmentDesc();
  348. equipmentDesc.setEquipmentId(list1.get(0).getId());
  349. equipmentDescService.save(equipmentDesc);
  350. }
  351. //获取设备的id
  352. // Long equipmentId = equipmentService.findByClientId(clientId).getId();
  353. LambdaQueryWrapper<TEquipment> query1 = Wrappers.lambdaQuery();
  354. query1.eq(TEquipment::getClientId,clientId);
  355. List<TEquipment> list1 = equipmentService.list(query1);
  356. Long equipmentId = list1.get(0).getId();
  357. // if (!productService.exists(Filter.eq("equipmentId", equipmentId))) {
  358. if (true) {
  359. if(equipmentApply.getEquimentType()!=null&&equipmentApply.getEquimentType().equals("MG280")){
  360. saveProductMG280(equipmentId);
  361. }else if(equipmentApply.getEquimentType()!=null&&equipmentApply.getEquimentType().equals("MG320-1")){
  362. saveProductMG1(equipmentId);
  363. } else{
  364. saveProduct(equipmentId);
  365. }
  366. }
  367. } else if (status.equals("rejected")) {
  368. equipmentApply.setStatusType(3);
  369. equipmentService.sentMessage(equipmentApply.getClientId(),PushUtils.buildJson("statusType", "rejected").toString());
  370. // PushUtils.push(equipmentApply.getGtClientId(), "【棉花糖】设备初始化申请", "拒绝", PushUtils.buildJson("statusType", "rejected").toString());
  371. }
  372. equipmentApplyService.updateById(equipmentApply);
  373. // addFlashMessage(redirectAttributes, SUCCESS_MESSAGE);
  374. }
  375. }
  376. }
  377. }
  378. /**
  379. * 添加产品
  380. *
  381. * @param id
  382. */
  383. private void saveProduct(Long id) {
  384. String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10",
  385. "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18"};
  386. for (int i = 0; i < str.length; i++) {
  387. TProduct product = new TProduct();
  388. product.setEquipmentId(id);
  389. String[] split = str[i].split("-");
  390. product.setProductName(split[0]);
  391. product.setNo(split[1]);
  392. product.setRmbPrice(BigDecimal.ZERO);
  393. product.setCodePrice(BigDecimal.ZERO);
  394. productService.save(product);
  395. }
  396. }
  397. private void saveProductMG280(Long id) {
  398. String[] str = { "水中芙蓉-A05", "水中芙蓉mini-A31", "烈焰红唇-A06", "烈焰红唇mini-A32", "夏日爱恋-A11", "夏日爱恋mini-A33", "冰美人-A12", "冰美人mini-A34", "彩色精灵-A17", "彩色精灵mini-A35"};
  399. for (int i = 0; i < str.length; i++) {
  400. TProduct product = new TProduct();
  401. product.setEquipmentId(id);
  402. String[] split = str[i].split("-");
  403. product.setProductName(split[0]);
  404. product.setNo(split[1]);
  405. product.setRmbPrice(BigDecimal.ZERO);
  406. product.setCodePrice(BigDecimal.ZERO);
  407. productService.save(product);
  408. }
  409. }
  410. private void saveProductMG1(Long id) {
  411. String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09",
  412. "心之守护-A10", "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18",
  413. "精灵蝶梦-A19","夏日倾城-A20","百花齐放-A21","蜂缠蝶恋-A22","豆蔻年华-A23","星空幻想-A24","坠入星空-A25","雪花飞舞-A26","春暖花开-A27","花飞蝶舞-A28",
  414. "花样年华-A29","心花怒放-A30"};
  415. for (int i = 0; i < str.length; i++) {
  416. TProduct product = new TProduct();
  417. product.setEquipmentId(id);
  418. String[] split = str[i].split("-");
  419. product.setProductName(split[0]);
  420. product.setNo(split[1]);
  421. product.setRmbPrice(BigDecimal.ZERO);
  422. product.setCodePrice(BigDecimal.ZERO);
  423. productService.save(product);
  424. }
  425. }
  426. private void saveProductMG12(Long id) {
  427. String[] str = { "精灵蝶梦-A19","夏日倾城-A20","百花齐放-A21","蜂缠蝶恋-A22","豆蔻年华-A23","星空幻想-A24"
  428. ,"坠入星空-A25","雪花飞舞-A26","春暖花开-A27","花飞蝶舞-A28","花样年华-A29","心花怒放-A30"};
  429. for (int i = 0; i < str.length; i++) {
  430. TProduct product = new TProduct();
  431. product.setEquipmentId(id);
  432. String[] split = str[i].split("-");
  433. product.setProductName(split[0]);
  434. product.setNo(split[1]);
  435. product.setRmbPrice(BigDecimal.ZERO);
  436. product.setCodePrice(BigDecimal.ZERO);
  437. productService.save(product);
  438. }
  439. }
  440. private void saveProductMG22(Long id) {
  441. String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10",
  442. "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18", "精灵蝶梦-A19","蜂缠蝶恋-A22","坠入星空-A25","花飞蝶舞-A28"};
  443. for (int i = 0; i < str.length; i++) {
  444. TProduct product = new TProduct();
  445. product.setEquipmentId(id);
  446. String[] split = str[i].split("-");
  447. product.setProductName(split[0]);
  448. product.setNo(split[1]);
  449. product.setRmbPrice(BigDecimal.ZERO);
  450. product.setCodePrice(BigDecimal.ZERO);
  451. productService.save(product);
  452. }
  453. }
  454. private void saveProductMG26(Long id) {
  455. String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10",
  456. "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18", "精灵蝶梦-A19","蜂缠蝶恋-A22","坠入星空-A25","花飞蝶舞-A28",
  457. "夏日倾城-A20", "雪花飞舞-A26", "豆蔻年华-A23", "花样年华-A29"};
  458. for (int i = 0; i < str.length; i++) {
  459. TProduct product = new TProduct();
  460. product.setEquipmentId(id);
  461. String[] split = str[i].split("-");
  462. product.setProductName(split[0]);
  463. product.setNo(split[1]);
  464. product.setRmbPrice(BigDecimal.ZERO);
  465. product.setCodePrice(BigDecimal.ZERO);
  466. productService.save(product);
  467. }
  468. }
  469. /**
  470. * 获取指定日期所在月份开始的时间戳
  471. * @param date 指定日期
  472. * @return
  473. */
  474. public static Long getMonthBegin(Date date) {
  475. Calendar c = Calendar.getInstance();
  476. c.setTime(date);
  477. //设置为10号,当前日期既为本月10号
  478. c.set(Calendar.DAY_OF_MONTH, 10);
  479. //将小时至0
  480. c.set(Calendar.HOUR_OF_DAY, 0);
  481. //将分钟至0
  482. c.set(Calendar.MINUTE, 0);
  483. //将秒至0
  484. c.set(Calendar.SECOND,0);
  485. //将毫秒至0
  486. c.set(Calendar.MILLISECOND, 0);
  487. // 获取本月第一天的时间戳
  488. return c.getTimeInMillis();
  489. }
  490. public static Date nextMonthDate() {
  491. Calendar calendar = Calendar.getInstance();
  492. calendar.set(Calendar.DAY_OF_MONTH,10);
  493. //将小时至0
  494. calendar.set(Calendar.HOUR_OF_DAY, 0);
  495. //将分钟至0
  496. calendar.set(Calendar.MINUTE, 0);
  497. //将秒至0
  498. calendar.set(Calendar.SECOND,0);
  499. //将毫秒至0
  500. calendar.set(Calendar.MILLISECOND, 0);
  501. calendar.add(Calendar.MONTH,1);
  502. return calendar.getTime();
  503. }
  504. /**
  505. *改花型
  506. * @param
  507. * @return
  508. */
  509. @RequestMapping(value = "/updateFlowers.htm", method = RequestMethod.POST)
  510. @ResponseBody
  511. public JsonMessage updateFlowers(String clientId,String number){
  512. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  513. query.eq(TEquipment::getClientId,clientId);
  514. List<TEquipment> list = equipmentService.list(query);
  515. TEquipment equipment = list.get(0);
  516. if(equipment!=null){
  517. Long id = equipment.getId();
  518. //修改花型记录数目
  519. TEquipmentDesc equipmentDesc = equipmentDescService.getById(id);
  520. if(equipmentDesc!=null){
  521. equipmentDesc.setFlowers(number);
  522. equipmentDescService.updateById(equipmentDesc);
  523. }else {
  524. TEquipmentDesc equipmentDesc1 = new TEquipmentDesc();
  525. equipmentDesc1.setEquipmentId(id);
  526. equipmentDesc1.setFlowers(number);
  527. equipmentDescService.save(equipmentDesc1);
  528. }
  529. //删除旧花型
  530. // List<Filter> filters = new ArrayList<>();
  531. // filters.add(Filter.eq("equipmentId", id));
  532. // List<Product> list = productService.findList(null, filters, null);
  533. LambdaQueryWrapper<TProduct> queryProduct = Wrappers.lambdaQuery();
  534. queryProduct.eq(TProduct::getEquipmentId,equipment.getId());
  535. List<TProduct> productList = productService.list(queryProduct);
  536. for(TProduct product : productList){
  537. productService.removeById(product.getId());
  538. }
  539. //创建花型
  540. if(number.equals("18")){
  541. saveProduct(id);
  542. }
  543. if(number.equals("22")){
  544. saveProductMG22(id);
  545. }
  546. if(number.equals("26")){
  547. saveProductMG26(id);
  548. }
  549. if(number.equals("30")){
  550. saveProductMG1(id);
  551. }
  552. return JsonMessage.success("success");
  553. }else {
  554. return JsonMessage.success("error");
  555. }
  556. }
  557. /**
  558. * 设备类型 开机时上传
  559. *
  560. * @param clientId 个推
  561. * @return
  562. */
  563. @RequestMapping(value = "/equimentType.htm", method = RequestMethod.POST)
  564. @ResponseBody
  565. public JsonMessage equimentType(String clientId, String equimentType){
  566. if(!StringUtils.isEmpty(equimentType)){
  567. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  568. query.eq(TEquipment::getClientId,clientId);
  569. List<TEquipment> list = equipmentService.list(query);
  570. TEquipment equipment = list.get(0);
  571. equipment.setEquimentType(equimentType);
  572. equipmentService.updateById(equipment);
  573. }
  574. return JsonMessage.success("success");
  575. }
  576. /**
  577. * 设备地址 开机时上传
  578. * @param clientId 个推
  579. * @return
  580. */
  581. @RequestMapping(value = "/equimentArea.htm", method = RequestMethod.GET)
  582. @ResponseBody
  583. public JsonMessage equimentArea(String clientId, String longitude, String latitude, String fullName){
  584. if(!StringUtils.isEmpty(longitude)&&!StringUtils.isEmpty(latitude)&&!StringUtils.isEmpty(fullName)){
  585. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  586. query.eq(TEquipment::getClientId,clientId);
  587. List<TEquipment> list = equipmentService.list(query);
  588. TEquipment equipment = list.get(0);
  589. equipment.setLatitude(Double.valueOf(latitude));
  590. equipment.setLongitude(Double.valueOf(longitude));
  591. equipment.setFullName(fullName+"-");
  592. equipmentService.updateById(equipment);
  593. return JsonMessage.success("success");
  594. }
  595. return JsonMessage.success("error");
  596. }
  597. /**
  598. * 商品调价
  599. */
  600. @RequestMapping(value = "/updateProduct.htm", method = RequestMethod.POST)
  601. @ResponseBody
  602. public JsonMessage updateProduct(@RequestBody List<ProductVo> productVos) {
  603. Double f=0.00;
  604. int num=0;
  605. int n=0;
  606. HashSet<Double> price = new HashSet<Double>();
  607. HashSet<Double> minprice = new HashSet<Double>();
  608. for (ProductVo product : productVos) {
  609. String clientId = product.getClientId();
  610. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  611. query.eq(TEquipment::getClientId,clientId);
  612. List<TEquipment> list = equipmentService.list(query);
  613. TEquipment equipment = list.get(0);
  614. Long id = equipment.getId();
  615. if(StringUtils.isNotEmpty(product.getShowType())){
  616. // productService.updateByClientID2(id, product.getRmbPrice(), product.getCodePrice(), product.getProductName(), product.getSellStatus(),product.getShowType());
  617. LambdaQueryWrapper<TProduct> queryProduct = Wrappers.lambdaQuery();
  618. queryProduct.eq(TProduct::getEquipmentId,equipment.getId());
  619. queryProduct.eq(TProduct::getProductName,product.getProductName());
  620. List<TProduct> productList = productService.list(queryProduct);
  621. TProduct tProduct = productList.get(0);
  622. tProduct.setRmbPrice(BigDecimal.valueOf(product.getRmbPrice()));
  623. tProduct.setCodePrice(BigDecimal.valueOf(product.getCodePrice()));
  624. tProduct.setShowType(product.getShowType());
  625. tProduct.setSellStatus(product.getSellStatus());
  626. productService.updateById(tProduct);
  627. }else {
  628. LambdaQueryWrapper<TProduct> queryProduct = Wrappers.lambdaQuery();
  629. queryProduct.eq(TProduct::getEquipmentId,equipment.getId());
  630. queryProduct.eq(TProduct::getProductName,product.getProductName());
  631. List<TProduct> productList = productService.list(queryProduct);
  632. TProduct tProduct = productList.get(0);
  633. tProduct.setRmbPrice(BigDecimal.valueOf(product.getRmbPrice()));
  634. tProduct.setCodePrice(BigDecimal.valueOf(product.getCodePrice()));
  635. tProduct.setSellStatus(product.getSellStatus());
  636. productService.updateById(tProduct);
  637. // productService.updateByClientID(id, product.getRmbPrice(), product.getCodePrice(), product.getProductName(), product.getSellStatus());
  638. }
  639. }
  640. return JsonMessage.success("调价成功");
  641. }
  642. public Double tran(Double d){
  643. return new BigDecimal(d).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
  644. }
  645. public Double tran2(Double d){
  646. return new BigDecimal(d).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  647. }
  648. /**
  649. * 密码修改
  650. *
  651. * @param clientId 设备个推Id
  652. * @param pwdType 密码类型 1d代表修adminPwd,0代表guestPwd
  653. * @return
  654. * @Param pwd 密码内容
  655. */
  656. @RequestMapping(value = "/updatePwd.htm", method = RequestMethod.POST)
  657. @ResponseBody
  658. public JsonMessage updatePwd(String clientId, String pwdType, String pwd) {
  659. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  660. query.eq(TEquipment::getClientId,clientId);
  661. List<TEquipment> list = equipmentService.list(query);
  662. TEquipment equipment = list.get(0);
  663. if (equipment != null) {
  664. if (!StringUtils.isEmpty(pwdType)) {
  665. switch (pwdType) {
  666. case "1":
  667. equipment.setAdminPwd(pwd);
  668. break;
  669. case "0":
  670. equipment.setGuestPwd(pwd);
  671. break;
  672. }
  673. equipmentService.updateById(equipment);
  674. return JsonMessage.success("更新密码成功");
  675. }
  676. }
  677. return JsonMessage.error("更新密码失败");
  678. }
  679. /**
  680. * 修改支付方式
  681. *
  682. * @param clientId
  683. * @param payType: 无需支付
  684. * 线上支付
  685. * 线下支付
  686. * 线上/线下
  687. * @return
  688. */
  689. @RequestMapping(value = "/updatePayType.htm", method = RequestMethod.POST)
  690. @ResponseBody
  691. public JsonMessage updatePayType(String clientId, String payType) {
  692. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  693. query.eq(TEquipment::getClientId,clientId);
  694. List<TEquipment> list = equipmentService.list(query);
  695. TEquipment equipment = list.get(0);
  696. if (equipment == null) {
  697. return JsonMessage.error("修改支付方式失败");
  698. }
  699. equipment.setPayType(0);
  700. equipmentService.updateById(equipment);
  701. return JsonMessage.success("修改成功");
  702. }
  703. /**
  704. * 日志上传
  705. */
  706. @RequestMapping(value = "/sendLog.htm", method = RequestMethod.POST)
  707. @ResponseBody
  708. public String uploadFile(HttpServletRequest request, HttpServletResponse response, String fileName) throws Exception{
  709. // String fileName = request.getParameter("fileName");
  710. // log.info("filename:"+fileName);
  711. // String fileName ="shafei.xls";
  712. // file1.length();
  713. // String name = request.getParameter("inputName");
  714. String fileFullPath = "/home/hboxs/log/" + fileName+".txt";
  715. // String fileFullPath = "/root/uploadfile/apache-tomcat-8.5.42/" + fileName;
  716. InputStream input = null;
  717. FileOutputStream fos = null;
  718. try {
  719. input = request.getInputStream();
  720. File file = new File("/home/hboxs/log/");
  721. if(!file.exists()){
  722. file.mkdirs();
  723. }
  724. fos = new FileOutputStream(fileFullPath);
  725. int size = 0;
  726. byte[] buffer = new byte[1024];
  727. while ((size = input.read(buffer,0,1024)) != -1) {
  728. fos.write(buffer, 0, size);
  729. }
  730. //响应信息 json字符串格式
  731. Map<String,Object> responseMap = new HashMap<String,Object>();
  732. responseMap.put("flag", true);
  733. //生成响应的json字符串
  734. String jsonResponse = JSONObject.toJSONString(responseMap);
  735. sendResponse(jsonResponse,response);
  736. } catch (IOException e) {
  737. //响应信息 json字符串格式
  738. Map<String,Object> responseMap = new HashMap<String,Object>();
  739. responseMap.put("flag", false);
  740. responseMap.put("errorMsg", e.getMessage());
  741. String jsonResponse = JSONObject.toJSONString(responseMap);
  742. sendResponse(jsonResponse,response);
  743. } finally{
  744. if(input != null){
  745. input.close();
  746. }
  747. if(fos != null){
  748. fos.close();
  749. }
  750. }
  751. return null;
  752. }
  753. /**
  754. * 返回响应
  755. *
  756. * @throws Exception
  757. */
  758. private void sendResponse(String responseString,HttpServletResponse response) throws Exception {
  759. response.setContentType("application/json;charset=UTF-8");
  760. PrintWriter pw = null;
  761. try {
  762. pw = response.getWriter();
  763. pw.write(responseString);
  764. pw.flush();
  765. } finally {
  766. IOUtils.closeQuietly(pw);
  767. }
  768. }
  769. /**
  770. * 脱离系统
  771. *
  772. * @param clientId
  773. * @return
  774. */
  775. @RequestMapping(value = "/separate.htm", method = RequestMethod.POST)
  776. @ResponseBody
  777. public JsonMessage separate(String clientId) {
  778. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  779. query.eq(TEquipment::getClientId,clientId);
  780. List<TEquipment> list = equipmentService.list(query);
  781. TEquipment equipment = list.get(0);
  782. if (equipment == null) {
  783. return JsonMessage.error("该设备不存在");
  784. }
  785. equipmentService.sentMessage(clientId,PushUtils.buildJson("tuoji", "0").toString());
  786. // PushUtils.push(equipment.getGtClientId(), "", "", PushUtils.buildJson("tuoji", "0").toString());
  787. if("xxx".equals(equipment.getClientId().substring(equipment.getClientId().length()-3,equipment.getClientId().length()))){
  788. return JsonMessage.success("脱离成功");
  789. }
  790. equipment.setClientId(equipment.getClientId() + "xxx");
  791. equipmentService.updateById(equipment);
  792. return JsonMessage.success("脱离成功");
  793. }
  794. /**
  795. * 修改设备联系人名称以及电话
  796. */
  797. @RequestMapping(value = "/updateContractPN.htm", method = RequestMethod.POST)
  798. @ResponseBody
  799. public JsonMessage updateContractPN(String clientId, String contactName, String contactPhone) {
  800. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  801. query.eq(TEquipment::getClientId,clientId);
  802. List<TEquipment> list = equipmentService.list(query);
  803. TEquipment equipment = list.get(0);
  804. if (equipment == null) {
  805. return JsonMessage.error("该设备不存在");
  806. }
  807. equipment.setContactName(contactName);
  808. equipment.setContactPhone(contactPhone);
  809. equipmentService.updateById(equipment);
  810. return JsonMessage.success("修改成功");
  811. }
  812. /**
  813. * 设备上传公司电话
  814. */
  815. @RequestMapping(value = "/sentCompanyPhone.htm", method = RequestMethod.POST)
  816. @ResponseBody
  817. public JsonMessage sentCompanyPhone(String clientId, String companyPhone) {
  818. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  819. query.eq(TEquipment::getClientId,clientId);
  820. List<TEquipment> list = equipmentService.list(query);
  821. TEquipment equipment = list.get(0);
  822. if (equipment == null) {
  823. return JsonMessage.error("该设备不存在");
  824. }
  825. equipment.setCompanyPhone(companyPhone);
  826. equipmentService.updateById(equipment);
  827. return JsonMessage.success("修改成功");
  828. }
  829. /**
  830. * 获取二维码图片
  831. */
  832. @RequestMapping(value = "/getQrCodeImgUrl.htm", method = RequestMethod.GET)
  833. @ResponseBody
  834. public String getQrCodeImgUrl(String clientId) {
  835. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  836. query.eq(TEquipment::getClientId,clientId);
  837. List<TEquipment> list = equipmentService.list(query);
  838. TEquipment equipment = list.get(0);
  839. if (equipment == null) {
  840. return "404";
  841. }
  842. //TODO
  843. // TAdmin admin = adminService.find(equipment.getAdminId());
  844. // String qrCodeImgUrl = admin.getQrCodeImgUrl();
  845. // if(!StringUtils.isEmpty(qrCodeImgUrl)){
  846. // return qrCodeImgUrl;
  847. // }else {
  848. // return "400";
  849. // }
  850. return "400";
  851. }
  852. /**
  853. * 上传4G卡号
  854. */
  855. @RequestMapping(value = "/sentSimNo.htm", method = RequestMethod.POST)
  856. @ResponseBody
  857. public JsonMessage sentSimNo(String clientId, String simNo) {
  858. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  859. query.eq(TEquipment::getClientId,clientId);
  860. List<TEquipment> list = equipmentService.list(query);
  861. TEquipment equipment = list.get(0);
  862. if (equipment == null) {
  863. return JsonMessage.error("该设备不存在");
  864. }
  865. equipment.setSimNo(simNo);
  866. equipmentService.updateById(equipment);
  867. return JsonMessage.success("修改成功");
  868. }
  869. /**
  870. * 修改设备状态
  871. *
  872. * @param clientId
  873. * @param eqeStatus 设备状态1开 0关
  874. * @return
  875. */
  876. @RequestMapping(value = "/updateEqeStatus.htm", method = RequestMethod.POST)
  877. @ResponseBody
  878. public JsonMessage updateEqeStatus(String clientId, Integer eqeStatus) {
  879. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  880. query.eq(TEquipment::getClientId,clientId);
  881. List<TEquipment> list = equipmentService.list(query);
  882. TEquipment equipment = list.get(0);
  883. if (equipment == null) {
  884. return JsonMessage.error("该设备不存在");
  885. }
  886. if(eqeStatus!=null){
  887. equipment.setEqeStatus(eqeStatus);
  888. equipment.setModifyDate(new Date());
  889. equipmentService.updateById(equipment);
  890. }
  891. return JsonMessage.success("修改成功");
  892. }
  893. /**
  894. * 新修改设备状态
  895. *
  896. * @param clientId
  897. * @param eqeStatus 设备状态1开 0关
  898. * @return
  899. */
  900. @RequestMapping(value = "/updateEqeStatusNew.htm", method = RequestMethod.POST)
  901. @ResponseBody
  902. public JsonMessage updateEqeStatusNew(String clientId, Integer eqeStatus,String netTime) {
  903. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  904. query.eq(TEquipment::getClientId,clientId);
  905. List<TEquipment> list = equipmentService.list(query);
  906. TEquipment equipment = list.get(0);
  907. if (equipment == null) {
  908. return JsonMessage.error("该设备不存在");
  909. }
  910. if(eqeStatus!=null){
  911. equipment.setNetwork(netTime);
  912. equipment.setEqeStatus(eqeStatus);
  913. equipmentService.updateById(equipment);
  914. }
  915. return JsonMessage.success("修改成功");
  916. }
  917. /**
  918. * 修改设备锁定状态
  919. *
  920. * @param clientId
  921. * @param block
  922. * @return
  923. */
  924. @RequestMapping(value = "/updateBlock.htm", method = RequestMethod.POST)
  925. @ResponseBody
  926. public JsonMessage updateBlock(String clientId, Boolean block) {
  927. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  928. query.eq(TEquipment::getClientId,clientId);
  929. List<TEquipment> list = equipmentService.list(query);
  930. TEquipment equipment = list.get(0);
  931. if (equipment == null) {
  932. return JsonMessage.error("该设备不存在");
  933. }
  934. equipment.setIsBlocked(block);
  935. equipmentService.updateById(equipment);
  936. return JsonMessage.success("修改成功");
  937. }
  938. /**
  939. * 修改设备睡眠状态
  940. *
  941. * @param clientId
  942. * @param is_sleep
  943. * @return
  944. */
  945. @RequestMapping(value = "/updateSleep.htm", method = RequestMethod.POST)
  946. @ResponseBody
  947. public JsonMessage updateSleep(String clientId, Boolean is_sleep) {
  948. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  949. query.eq(TEquipment::getClientId,clientId);
  950. List<TEquipment> list = equipmentService.list(query);
  951. TEquipment equipment = list.get(0);
  952. if (equipment == null) {
  953. return JsonMessage.error("该设备不存在");
  954. }
  955. if(is_sleep!=null){
  956. equipment.setIsSleep(is_sleep);
  957. equipmentService.updateById(equipment);
  958. }
  959. return JsonMessage.success("修改成功");
  960. }
  961. /**
  962. * 修改设备生产棉花糖个数
  963. *
  964. * @param clientId
  965. * @param productTotal
  966. * @return
  967. */
  968. @RequestMapping(value = "/updateProductTotal.htm", method = RequestMethod.POST)
  969. @ResponseBody
  970. public JsonMessage updateProductTotal(String clientId, Integer productTotal) {
  971. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  972. query.eq(TEquipment::getClientId,clientId);
  973. List<TEquipment> list = equipmentService.list(query);
  974. TEquipment equipment = list.get(0);
  975. if (equipment == null) {
  976. return JsonMessage.error("该设备不存在");
  977. }
  978. Integer total = equipment.getProductTotal();
  979. if (total == null) {
  980. total = 0;
  981. }
  982. equipment.setProductTotal(total + productTotal);
  983. equipmentService.updateById(equipment);
  984. return JsonMessage.success("修改成功");
  985. }
  986. /**
  987. * 修改设备共同参数/进阶参数
  988. *
  989. * @param
  990. * @return
  991. */
  992. // @PostMapping(value = "/updateParam/{code}/{clientId}", produces = "application/json;charset=UTF-8")
  993. // @ResponseBody
  994. // public JsonMessage updateParam(@PathVariable Integer code, @PathVariable String clientId, @RequestBody List<CommonParamVo> commonParamVos) {
  995. // Equipment equipment = equipmentService.findByClientId(clientId);
  996. // if (equipment == null) {
  997. // return JsonMessage.error("设备不存在");
  998. // }
  999. // String param = JSONArray.toJSONString(commonParamVos);
  1000. // if (code == 0) {
  1001. // equipment.setCommonParameters(param);
  1002. // } else {
  1003. // equipment.setAdvancedParameters(param);
  1004. // }
  1005. // equipmentService.update(equipment);
  1006. // return JsonMessage.success("修改成功");
  1007. // }
  1008. /**
  1009. * 修改设备共同参数/进阶参数
  1010. * code 0:通用参数;1:进阶参数;2:调试页参数
  1011. * @param
  1012. * @return
  1013. */
  1014. @PostMapping(value = "/updateParamNew.htm/{code}/{clientId}", produces = "application/json;charset=UTF-8")
  1015. @ResponseBody
  1016. public JsonMessage updateParamNew(@PathVariable Integer code, @PathVariable String clientId, @RequestBody List<CommonParamVo> commonParamVos) {
  1017. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1018. query.eq(TEquipment::getClientId,clientId);
  1019. List<TEquipment> list = equipmentService.list(query);
  1020. TEquipment equipment = list.get(0);
  1021. if (equipment == null) {
  1022. return JsonMessage.error("设备不存在");
  1023. }
  1024. if(commonParamVos.size()<=0){
  1025. return JsonMessage.error("参数为空");
  1026. }
  1027. // ArrayList<Filter> filters = new ArrayList<>();
  1028. // filters.add(Filter.eq("status", code));
  1029. // filters.add(Filter.eq("clientId", clientId));
  1030. // filters.add(Filter.eq("equipmentId", equipment.getId()));
  1031. // List<Parameters> list = parametersService.findList(null, filters, null);
  1032. LambdaQueryWrapper<TParameters> queryParameters = Wrappers.lambdaQuery();
  1033. queryParameters.eq(TParameters::getClientId,clientId);
  1034. queryParameters.eq(TParameters::getStatus,code);
  1035. queryParameters.eq(TParameters::getEquipmentId,equipment.getId());
  1036. List<TParameters> list1 = parametersService.list(queryParameters);
  1037. if(list1.size()>0){
  1038. for(TParameters parameters:list1){
  1039. //删除旧的参数
  1040. parametersService.removeById(parameters.getId());
  1041. }
  1042. }
  1043. Date date = new Date();
  1044. for(CommonParamVo commonParamVo:commonParamVos){
  1045. TParameters parameters = new TParameters();
  1046. parameters.setVal(commonParamVo.getVal());
  1047. parameters.setName(commonParamVo.getName());
  1048. parameters.setStatus(String.valueOf(code));
  1049. parameters.setClientId(clientId);
  1050. parameters.setEquipmentId(equipment.getId());
  1051. parameters.setCreateDate(date);
  1052. parameters.setModifyDate(date);
  1053. parametersService.save(parameters);
  1054. }
  1055. return JsonMessage.success("修改成功");
  1056. }
  1057. /**
  1058. * 修改单个设备共同参数/进阶参数
  1059. * code 0:通用参数;1:进阶参数;2:调试页参数
  1060. * @param
  1061. * @return
  1062. */
  1063. @PostMapping(value = "/updateAloneParam.htm", produces = "application/json;charset=UTF-8")
  1064. @ResponseBody
  1065. public JsonMessage updateAloneParam(String code, String clientId,String name,String val) {
  1066. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1067. query.eq(TEquipment::getClientId,clientId);
  1068. List<TEquipment> list = equipmentService.list(query);
  1069. TEquipment equipment = list.get(0);
  1070. if (equipment == null) {
  1071. return JsonMessage.error("设备不存在");
  1072. }
  1073. // ArrayList<Filter> filters = new ArrayList<>();
  1074. // filters.add(Filter.eq("status", code));
  1075. // filters.add(Filter.eq("clientId", clientId));
  1076. // filters.add(Filter.eq("equipmentId", equipment.getId()));
  1077. // filters.add(Filter.eq("name", name));
  1078. // List<Parameters> list = parametersService.findList(null, filters, null);
  1079. LambdaQueryWrapper<TParameters> queryParameters = Wrappers.lambdaQuery();
  1080. queryParameters.eq(TParameters::getClientId,clientId);
  1081. queryParameters.eq(TParameters::getStatus,code);
  1082. queryParameters.eq(TParameters::getName,name);
  1083. queryParameters.eq(TParameters::getEquipmentId,equipment.getId());
  1084. List<TParameters> list1 = parametersService.list(queryParameters);
  1085. if(list1.size()>0){
  1086. TParameters parameters = list1.get(0);
  1087. parameters.setVal(val);
  1088. parameters.setModifyDate(new Date());
  1089. parametersService.updateById(parameters);
  1090. }
  1091. return JsonMessage.success("修改成功");
  1092. }
  1093. /**
  1094. * 获取机器列表
  1095. */
  1096. @RequestMapping(value = "/getEquipmentList.htm", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
  1097. @ResponseBody
  1098. public Object getByAdminAndProduct(String adminId,String name) {
  1099. JSONObject jsonObject = new JSONObject();
  1100. if(StringUtils.isEmpty(adminId)){
  1101. jsonObject.put("code", 1);
  1102. jsonObject.put("errmsg", "adminId为空");
  1103. return jsonObject;
  1104. }
  1105. if(StringUtils.isEmpty(name)){
  1106. jsonObject.put("code", 1);
  1107. jsonObject.put("errmsg", "name为空");
  1108. return jsonObject;
  1109. }
  1110. // Admin admin = adminService.find(Long.valueOf(adminId));
  1111. TAdmin admin = adminService.getById(adminId);
  1112. if(!admin.getUsername().equals(name)){
  1113. jsonObject.put("code", 1);
  1114. jsonObject.put("errmsg", "name与adminId不匹配");
  1115. return jsonObject;
  1116. }
  1117. List<EquipmentDTO> list = new ArrayList<>();
  1118. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1119. query.eq(TEquipment::getAdminId,Long.valueOf(adminId));
  1120. List<TEquipment> equipmentList = equipmentService.list(query);
  1121. // List<TEquipment> equipmentList = equipmentService.findByAdminId(Long.valueOf(adminId));
  1122. for(TEquipment equipment:equipmentList){
  1123. EquipmentDTO equipmentDTO = new EquipmentDTO();
  1124. equipmentDTO.setClientId(equipment.getClientId());
  1125. equipmentDTO.setSn(equipment.getSn());
  1126. equipmentDTO.setName(equipment.getName());
  1127. equipmentDTO.setLatitude(equipment.getLatitude());
  1128. equipmentDTO.setLongitude(equipment.getLongitude());
  1129. equipmentDTO.setFullName(equipment.getFullName());
  1130. equipmentDTO.setEqeStatus(equipment.getEqeStatus());
  1131. list.add(equipmentDTO);
  1132. }
  1133. jsonObject.put("code", 0);
  1134. jsonObject.put("rows", JsonUtils.toJson(list));
  1135. jsonObject.put("errmsg", "");
  1136. jsonObject.put("total", list.size());
  1137. return jsonObject;
  1138. }
  1139. /**
  1140. * 获取商品信息
  1141. */
  1142. @RequestMapping(value = "/getProductions.htm", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
  1143. @ResponseBody
  1144. public Object getProductions(String adminId,String clientId) {
  1145. JSONObject jsonObject = new JSONObject();
  1146. if(StringUtils.isEmpty(adminId)){
  1147. jsonObject.put("code", 1);
  1148. jsonObject.put("errmsg", "adminId为空");
  1149. return jsonObject;
  1150. }
  1151. if(StringUtils.isEmpty(clientId)){
  1152. jsonObject.put("code", 1);
  1153. jsonObject.put("errmsg", "clientId为空");
  1154. return jsonObject;
  1155. }
  1156. // KafkaProperties.Admin admin = adminService.find(Long.valueOf(adminId));
  1157. TAdmin admin = adminService.getById(Long.valueOf(adminId));
  1158. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1159. query.eq(TEquipment::getClientId,clientId);
  1160. List<TEquipment> list1 = equipmentService.list(query);
  1161. TEquipment equipment = list1.get(0);
  1162. // Equipment equipment = equipmentService.findByClientId(clientId);
  1163. if(!equipment.getAdminId().toString().equals(admin.getId().toString())){
  1164. jsonObject.put("code", 1);
  1165. jsonObject.put("errmsg", "clientId与adminId不匹配");
  1166. return jsonObject;
  1167. }
  1168. // ArrayList<Filter> filters = new ArrayList<>();
  1169. // filters.add(Filter.eq("equipmentId", equipment.getId()));
  1170. // List<Product> products = productService.findList(null, filters, null);
  1171. List<String> list = new ArrayList<>();
  1172. LambdaQueryWrapper<TProduct> queryProduct = Wrappers.lambdaQuery();
  1173. queryProduct.eq(TProduct::getEquipmentId,equipment.getId());
  1174. List<TProduct> products = productService.list(queryProduct);
  1175. // TProduct tProduct = products.get(0);
  1176. for (TProduct product:products){
  1177. list.add(product.getProductName());
  1178. }
  1179. jsonObject.put("code", 0);
  1180. jsonObject.put("productions", JsonUtils.toJson(list));
  1181. jsonObject.put("errmsg", "");
  1182. jsonObject.put("total", list.size());
  1183. return jsonObject;
  1184. }
  1185. // @ApiOperation(value = "分页查询")
  1186. // @GetMapping("/testPage")
  1187. // public ResponseModel<IPage<?>> testPage(TAdminParam param) {
  1188. // LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  1189. // query.eq(TAdmin::getIsEnabled,true);
  1190. // if(StrUtil.isNotBlank(param.getName())){
  1191. // query.like(TAdmin::getName,param.getName());
  1192. // }
  1193. // query.orderByDesc(TAdmin::getApplyStartTime);
  1194. // Page<TAdmin> page = new Page<>(param.getCurrent(), param.getSize(), true);
  1195. // IPage<TAdmin> iPage = tAdminService.page(page, query);
  1196. // return R.ok(iPage);
  1197. // }
  1198. //
  1199. // @ApiOperation(value = "列表查询")
  1200. // @GetMapping("/testList")
  1201. // public ResponseModel<List<?>> testList(TAdminParam param) {
  1202. // LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  1203. // query.eq(TAdmin::getIsEnabled,true);
  1204. // if(StrUtil.isNotBlank(param.getName())){
  1205. // query.like(TAdmin::getName,param.getName());
  1206. // }
  1207. // query.orderByDesc(TAdmin::getApplyStartTime);
  1208. // List<TAdmin> list = tAdminService.list(query);
  1209. // return R.ok(list);
  1210. // }
  1211. // @ApiOperation(value = "返回失败")
  1212. // @GetMapping("/testError")
  1213. // public ResponseModel<List<?>> testError(boolean success) {
  1214. // if(success){
  1215. // return R.ok();
  1216. // }else{
  1217. // return R.fail(ResponseCodesEnum.B0001,"你的错误信息");
  1218. // }
  1219. // }
  1220. /**
  1221. *是否启用物料监控功能
  1222. * 0:不启用,1:启用
  1223. * @param clientId 个推
  1224. * @return
  1225. */
  1226. @RequestMapping(value = "/updateMaterialStatus.htm", method = RequestMethod.POST)
  1227. @ResponseBody
  1228. public JsonMessage updateMaterialUse(String clientId, String isMaterialUse){
  1229. if(!StringUtils.isEmpty(clientId)&&!StringUtils.isEmpty(isMaterialUse)){
  1230. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  1231. query.eq(TEquipment::getClientId,clientId);
  1232. List<TEquipment> list1 = equipmentService.list(query);
  1233. TEquipment equipment = list1.get(0);
  1234. TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
  1235. equipmentDesc.setIsMaterialUse(isMaterialUse);
  1236. equipmentDescService.updateById(equipmentDesc);
  1237. return JsonMessage.success("success");
  1238. }
  1239. return JsonMessage.error("error");
  1240. }
  1241. }