ScanAdminController.java 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641
  1. package com.bofeng.wx.controller;
  2. import cn.afterturn.easypoi.cache.manager.IFileLoader;
  3. import com.baomidou.mybatisplus.toolkit.IdWorker;
  4. import com.bofeng.JwtHelper;
  5. import com.bofeng.dao.*;
  6. import com.bofeng.entity.*;
  7. import com.bofeng.excel.ExcelUtils;
  8. import com.bofeng.service.MsReportService;
  9. import com.bofeng.service.ScanAdminService;
  10. import com.bofeng.service.ScanService;
  11. import com.bofeng.service.SweepCodeService;
  12. import com.bofeng.unit.QRCode;
  13. import com.google.zxing.BarcodeFormat;
  14. import com.google.zxing.MultiFormatWriter;
  15. import com.google.zxing.WriterException;
  16. import com.google.zxing.client.j2se.MatrixToImageConfig;
  17. import com.google.zxing.client.j2se.MatrixToImageWriter;
  18. import com.google.zxing.common.BitMatrix;
  19. import com.yvan.Model;
  20. import com.yvan.PageDb;
  21. import com.yvan.mvc.JsonBody;
  22. import com.yvan.mvc.Pd;
  23. import com.yvan.platform.Conv;
  24. import com.yvan.springmvc.HttpParameterParser;
  25. import io.swagger.annotations.Api;
  26. import io.swagger.annotations.ApiOperation;
  27. import lombok.Cleanup;
  28. import lombok.SneakyThrows;
  29. import org.springframework.beans.factory.annotation.Autowired;
  30. import org.springframework.beans.factory.annotation.Value;
  31. import org.springframework.http.MediaType;
  32. import org.springframework.http.ResponseEntity;
  33. import org.springframework.web.bind.annotation.GetMapping;
  34. import org.springframework.web.bind.annotation.PostMapping;
  35. import org.springframework.web.bind.annotation.RequestMapping;
  36. import org.springframework.web.bind.annotation.RestController;
  37. import javax.servlet.ServletOutputStream;
  38. import javax.servlet.http.HttpServletResponse;
  39. import java.io.IOException;
  40. import java.net.URLEncoder;
  41. import java.text.ParseException;
  42. import java.text.SimpleDateFormat;
  43. import java.util.Date;
  44. import java.util.HashMap;
  45. import java.util.List;
  46. import java.util.Map;
  47. @Api("进出扫码后台信息")
  48. @RestController
  49. public class ScanAdminController {
  50. @Autowired
  51. private SweepCodeService sweepCodeService;
  52. @Autowired
  53. private UptownDoorMapper uptownDoorMapper;
  54. @Autowired
  55. private UptownMapper uptownMapper;
  56. @Autowired
  57. private ScanAdminService scanAdminService;
  58. @Autowired
  59. private OutUserMapper outUserMapper;
  60. @Autowired
  61. private UptownHomeMapper uptownHomeMapper;
  62. @Autowired
  63. private UptownHouseMapper uptownHouseMapper;
  64. @Autowired
  65. private UptownUnitMapper uptownUnitMapper;
  66. @Autowired
  67. private SysUptownUnitMapper sysUptownUnitMapper;
  68. @Autowired
  69. private RbMapper rbMapper;
  70. @Autowired
  71. private MsReportService msReportService;
  72. @Autowired
  73. private ScanService scanService;
  74. @Autowired
  75. private ReturnWorkLyMapper returnWorkLyMapper;
  76. @ApiOperation("出入查询")
  77. @PostMapping("/whepi/sweepCode/selectCode")
  78. public Model<List<SysUptownHouse>> selectCode(PageDb pageDb,HttpParameterParser parser) {
  79. // HttpServletResponse response,HttpServletRequest request
  80. List<SysUptownHouse> sysUptownHouses = sweepCodeService.selectCode(pageDb,parser.getMap());
  81. return Model.newSuccess(pageDb,sysUptownHouses);
  82. }
  83. @ApiOperation("凌云用户管理")
  84. @PostMapping("/whepi/sweepCode/selectLingyunUser")
  85. public Model<List<ExcelRiBaoLYBM4>> selectLingyunUser(PageDb pageDb,HttpParameterParser parser) throws ParseException {
  86. // HttpServletResponse response,HttpServletRequest request
  87. List<ExcelRiBaoLYBM4> sysUptownHouses = sweepCodeService.selectLingyunUser(pageDb,parser.getMap(), 1238790987234L);
  88. return Model.newSuccess(pageDb,sysUptownHouses);
  89. }
  90. @ApiOperation("凌云用户管理")
  91. @PostMapping("/whepi/sweepCode/selectLingyunUserNotOnJob")
  92. public Model<List<ExcelRiBaoLYBM4>> selectLingyunUserNotOnJob(PageDb pageDb,HttpParameterParser parser) throws ParseException {
  93. // HttpServletResponse response,HttpServletRequest request
  94. List<ExcelRiBaoLYBM4> sysUptownHouses = sweepCodeService.selectLingyunUserNotOnJob(pageDb,parser.getMap(), 1238790987234L);
  95. return Model.newSuccess(pageDb,sysUptownHouses);
  96. }
  97. @ApiOperation("中建康城用户管理")
  98. @PostMapping("/whepi/sweepCode/selectLingyunUserZJ")
  99. public Model<List<ExcelRiBaoLYBM4>> selectLingyunUserZJ(PageDb pageDb,HttpParameterParser parser) throws ParseException {
  100. // HttpServletResponse response,HttpServletRequest request
  101. List<ExcelRiBaoLYBM4> sysUptownHouses = sweepCodeService.selectLingyunUser(pageDb,parser.getMap(), 5L);
  102. return Model.newSuccess(pageDb,sysUptownHouses);
  103. }
  104. @ApiOperation("凌云用户管理")
  105. @PostMapping("/whepi/sweepCode/HCUser")
  106. public Model<List<ExcelRiBaoLYBM4>> HCUser(PageDb pageDb,HttpParameterParser parser) {
  107. List<ExcelRiBaoLYBM4> sysUptownHouses = sweepCodeService.HCUser(pageDb,parser.getMap());
  108. return Model.newSuccess(pageDb,sysUptownHouses);
  109. }
  110. @ApiOperation("凌云用户管理,上报明细")
  111. @GetMapping("/whepi/sweepCode/selectLingyunUserHistory")
  112. public Model<List<ExcelRiBaoLYBM4>> selectLingyunUserHistory(PageDb pageDb,@Pd(name = "userId") Long userId) {
  113. // HttpServletResponse response,HttpServletRequest request
  114. List<ExcelRiBaoLYBM4> sysUptownHouses = sweepCodeService.selectLingyunUserHistory(pageDb,userId);
  115. return Model.newSuccess(pageDb,sysUptownHouses);
  116. }
  117. @ApiOperation("凌云用户管理导出")
  118. @GetMapping("/whepi/sweepCode/exSelectLingyunUser")
  119. @SneakyThrows
  120. public void exSelectLingyunUser(HttpParameterParser parser,HttpServletResponse resp,
  121. @Pd(name = "queryProperties", required = false, defaultValue = "") String queryProperties,
  122. @Pd(name = "unitId", required = false, defaultValue = "0") Long unitId,
  123. @Pd(name = "msStatus", required = false, defaultValue = "0") Integer msStatus,
  124. @Pd(name = "isContact", required = false, defaultValue = "0") Integer isContact,
  125. @Pd(name = "isSuspected", required = false, defaultValue = "0") Integer isSuspected,
  126. @Pd(name = "isTrip", required = false, defaultValue = "0") Integer isTrip,
  127. @Pd(name = "isBand", required = false, defaultValue = "0") Integer isBand,
  128. @Pd(name = "date") String date,
  129. @Pd(name = "departmentId", required = false, defaultValue = "0") Long departmentId) {
  130. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  131. Map<String, Object> map = new HashMap<>();
  132. map.put("queryProperties", queryProperties);
  133. map.put("msStatus", msStatus);
  134. map.put("isContact", isContact);
  135. map.put("isSuspected", isSuspected);
  136. map.put("isTrip", isTrip);
  137. map.put("isBand", isBand);
  138. map.put("departmentId", departmentId);
  139. Long userId = JwtHelper.getUserId();
  140. if (userId > 7000 && userId < 8000) {
  141. unitId = userId;
  142. }
  143. map.put("unitId", unitId);
  144. map.put("date", date);
  145. String unitName = "";
  146. List<UptownUnit> uptownUnits = sysUptownUnitMapper.selectByUnitId(unitId);
  147. if (uptownUnits!=null && uptownUnits.size()>0) {
  148. unitName = uptownUnits.get(0).getRidgepole()+uptownUnits.get(0).getUnit();
  149. }
  150. List<ExcelRiBaoLYBM4> list = sweepCodeService.exSelectLingyunUser(map, 1238790987234L);
  151. ExcelUtils.writeSheet(ExcelRiBaoLYBM4.class, list).export(resp, unitName + "上报信息-" + date);
  152. }
  153. @ApiOperation("中建康城导出报表")
  154. @GetMapping("/whepi/sweepCode/exSelectLingyunUserZJ")
  155. @SneakyThrows
  156. public void exSelectLingyunUserZJ(HttpParameterParser parser,HttpServletResponse resp,
  157. @Pd(name = "queryProperties", required = false, defaultValue = "") String queryProperties,
  158. @Pd(name = "unitId", required = false, defaultValue = "0") Long unitId,
  159. @Pd(name = "msStatus", required = false, defaultValue = "0") Integer msStatus,
  160. @Pd(name = "isContact", required = false, defaultValue = "0") Integer isContact,
  161. @Pd(name = "isSuspected", required = false, defaultValue = "0") Integer isSuspected,
  162. @Pd(name = "isTrip", required = false, defaultValue = "0") Integer isTrip,
  163. @Pd(name = "date") String date) {
  164. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  165. Map<String, Object> map = new HashMap<>();
  166. map.put("queryProperties", queryProperties);
  167. map.put("msStatus", msStatus);
  168. map.put("isContact", isContact);
  169. map.put("isSuspected", isSuspected);
  170. map.put("isTrip", isTrip);
  171. Long userId = JwtHelper.getUserId();
  172. if (userId > 7000 && userId < 8000) {
  173. unitId = userId;
  174. }
  175. map.put("unitId", unitId);
  176. map.put("date", date);
  177. String unitName = "";
  178. List<UptownUnit> uptownUnits = sysUptownUnitMapper.selectByUnitId(unitId);
  179. if (uptownUnits!=null && uptownUnits.size()>0) {
  180. unitName = uptownUnits.get(0).getRidgepole()+uptownUnits.get(0).getUnit();
  181. }
  182. List<ExcelRiBaoLYBM4> list = sweepCodeService.exSelectLingyunUser(map, 5L);
  183. List<ExcelRiBaoZJBM4> excelRiBaoZJBM4s = sweepCodeService.listCopyToAotherList(ExcelRiBaoZJBM4.class, list);
  184. ExcelUtils.writeSheet(ExcelRiBaoZJBM4.class, excelRiBaoZJBM4s).export(resp, unitName + "上报信息-" + date);
  185. }
  186. @ApiOperation("凌云用户管理导出")
  187. @GetMapping("/whepi/sweepCode/exSelectHCUser")
  188. @SneakyThrows
  189. public void exSelectHCUser(HttpParameterParser parser,HttpServletResponse resp,
  190. @Pd(name = "queryProperties", required = false, defaultValue = "") String queryProperties,
  191. @Pd(name = "unitId", required = false, defaultValue = "0") Long unitId,
  192. @Pd(name = "date") String date) {
  193. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  194. Map<String, Object> map = new HashMap<>();
  195. map.put("queryProperties", queryProperties);
  196. map.put("unitId", unitId);
  197. map.put("date", date);
  198. String unitName = "";
  199. List<UptownUnit> uptownUnits = sysUptownUnitMapper.selectByUnitId(unitId);
  200. if (uptownUnits!=null && uptownUnits.size()>0) {
  201. unitName = uptownUnits.get(0).getRidgepole()+uptownUnits.get(0).getUnit();
  202. }
  203. List<ExcelRiBaoHCBM4> list = sweepCodeService.exSelectHCUser(map);
  204. ExcelUtils.writeSheet(ExcelRiBaoHCBM4.class, list).export(resp, unitName + "上报信息-" + date);
  205. }
  206. @ApiOperation("导出")
  207. @PostMapping("/whepi/sweepCode/export")
  208. @SneakyThrows
  209. public void export(HttpParameterParser parser,HttpServletResponse resp) {
  210. List<SysUptownHouse> sysUptownHouses = sweepCodeService.export(parser.getMap());
  211. ExcelUtils.writeSheet(SysUptownHouse.class, sysUptownHouses).export(resp,"出入管理");
  212. }
  213. @ApiOperation("凌云出入查询")
  214. @PostMapping("/whepi/sweepCode/selectCodeLY")
  215. public Model<List<SysUptownHouseLY>> selectCodeLY(PageDb pageDb,HttpParameterParser parser) {
  216. List<SysUptownHouseLY> sysUptownHouses = sweepCodeService.selectCodeLY(pageDb,parser.getMap());
  217. return Model.newSuccess(pageDb,sysUptownHouses);
  218. }
  219. @ApiOperation("凌云导出")
  220. @PostMapping("/whepi/sweepCode/exportLY")
  221. @SneakyThrows
  222. public void exportLY(HttpParameterParser parser,HttpServletResponse resp) {
  223. List<SysUptownHouseLY> sysUptownHouses = sweepCodeService.exportLY(parser.getMap());
  224. ExcelUtils.writeSheet(SysUptownHouseLY.class, sysUptownHouses).export(resp,"凌云集团出入管理");
  225. }
  226. @ApiOperation("和昌出入查询")
  227. @PostMapping("/whepi/sweepCode/selectCodeHC")
  228. public Model<List<SysUptownHouseLY>> selectCodeHC(PageDb pageDb,HttpParameterParser parser) {
  229. List<SysUptownHouseLY> sysUptownHouses = sweepCodeService.selectCodeHC(pageDb,parser.getMap());
  230. return Model.newSuccess(pageDb,sysUptownHouses);
  231. }
  232. @ApiOperation("和昌导出")
  233. @PostMapping("/whepi/sweepCode/exportHC")
  234. @SneakyThrows
  235. public void exportHC(HttpParameterParser parser,HttpServletResponse resp) {
  236. List<SysUptownHouseLY> sysUptownHouses = sweepCodeService.exportHC(parser.getMap());
  237. ExcelUtils.writeSheet(SysUptownHouseLY.class, sysUptownHouses).export(resp,"湖北和昌新材料科技出入管理");
  238. }
  239. @ApiOperation("出入查询")
  240. @PostMapping("/whepi/sweepCode/selectXunJian")
  241. public Model<List<OutScanEstate>> selectXunJian(PageDb pageDb,HttpParameterParser parser) {
  242. List<OutScanEstate> outScanEstates = sweepCodeService.selectXunJian(pageDb,parser.getMap());
  243. return Model.newSuccess(pageDb,outScanEstates);
  244. }
  245. @ApiOperation("导出")
  246. @PostMapping("/whepi/sweepCode/exportXunJian")
  247. @SneakyThrows
  248. public void exportXunJian(HttpParameterParser parser,HttpServletResponse resp) {
  249. List<OutScanEstate> outScanEstates = sweepCodeService.exportXunJian(parser.getMap());
  250. ExcelUtils.writeSheet(OutScanEstate.class, outScanEstates).export(resp,"问询管理");
  251. }
  252. @ApiOperation("导出凌云异常情况")
  253. @PostMapping("/whepi/sweepCode/getByReportSuspected")
  254. @SneakyThrows
  255. public void getByReportSuspected(HttpParameterParser parser,HttpServletResponse resp) {
  256. List<MsReport> list = msReportService.getByReportSuspected();
  257. ExcelUtils.writeSheet(MsReport.class, list).export(resp,"系统六类人员");
  258. }
  259. @ApiOperation("特殊人员查询")
  260. @PostMapping("/whepi/OutUser/selectAllOutUser")
  261. public Model<List<OutUser>> selectAllOutUser(PageDb pageDb,HttpParameterParser parser) {
  262. List<OutUser> outUsers = outUserMapper.getAllOutUser(pageDb,parser.getMap());
  263. return Model.newSuccess(pageDb,outUsers);
  264. }
  265. @ApiOperation("凌云特殊人员查询")
  266. @PostMapping("/whepi/OutUser/selectAllOutUserLY")
  267. public Model<List<OutUser>> selectAllOutUserLY(PageDb pageDb,HttpParameterParser parser) {
  268. List<OutUser> outUsers = outUserMapper.getAllOutUserLY(pageDb,parser.getMap());
  269. return Model.newSuccess(pageDb,outUsers);
  270. }
  271. @ApiOperation("检查电话号码")
  272. @PostMapping("/whepi/OutUser/getUptownHomeByPhone")
  273. public Model<UptownHome> getUptownHomeByPhone(@Pd(name = "phone") String phone) {
  274. List<UptownHome> outUsers = uptownHomeMapper.getUptownHomeByPhone(phone);
  275. if (outUsers.size() > 0) {
  276. return Model.newSuccess(outUsers.get(0));
  277. } else {
  278. return Model.newFail("该号码并未注册");
  279. }
  280. }
  281. @ApiOperation("更改特殊人员出入的时间")
  282. @PostMapping("/whepi/OutUser/updateOutUser")
  283. public Model updateOutUser(@Pd(name = "tuId") Long tuId,
  284. @Pd(name = "startDate") String startDate,
  285. @Pd(name = "endDate") String endDate) throws ParseException {
  286. OutUser o = outUserMapper.selectById(tuId);
  287. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  288. o.setStartDate(sdf.parse(startDate));
  289. o.setEndDate(sdf.parse(endDate));
  290. o.setUserUpdate(JwtHelper.getUserId());
  291. return Model.newSuccess(outUserMapper.updateById(o));
  292. }
  293. @ApiOperation("更改凌云二类特殊人员的时间")
  294. @PostMapping("/whepi/OutUser/updateOutUserLY2")
  295. public Model updateOutUserLY2(@Pd(name = "tuId") Long tuId,
  296. @Pd(name = "startDate") String startDate) throws ParseException {
  297. OutUser o = outUserMapper.selectById(tuId);
  298. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  299. o.setStartDate(sdf.parse(startDate));
  300. o.setUserUpdate(JwtHelper.getUserId());
  301. return Model.newSuccess(outUserMapper.updateById(o));
  302. }
  303. @ApiOperation("保存特殊人员")
  304. @PostMapping("/whepi/OutUser/saveOutUser")
  305. public Model saveOutUser(@JsonBody OutUser outUser) {
  306. OutUser outUser1 = outUserMapper.queryOutUserByPhone(2, outUser.getPhone());
  307. if (outUser1 != null) {
  308. return Model.newFail("该号码已经添加为特殊人员,请仔细检查该号码。");
  309. }
  310. List<UptownHome> uptownHomes = uptownHomeMapper.getUptownHomeByPhone(outUser.getPhone().toString());
  311. if (uptownHomes.size() > 0) {
  312. outUser.setName(uptownHomes.get(0).getLinkman());
  313. }
  314. outUser.setTuId(IdWorker.getId());
  315. outUser.setTuType(2);
  316. outUser.setStartDate(new Date());
  317. outUser.setEndDate(new Date());
  318. outUser.setTime(1);
  319. return Model.newSuccess(outUserMapper.insert(outUser));
  320. }
  321. @ApiOperation("凌云保存特殊人员")
  322. @PostMapping("/whepi/OutUser/saveOutUserLY")
  323. public Model saveOutUserLY(@JsonBody OutUser outUser) {
  324. OutUser outUser1 = outUserMapper.queryOutUserByPhone(1, outUser.getPhone());
  325. if (outUser1 != null) {
  326. return Model.newFail("该号码已经添加为特殊人员,请仔细检查该号码。");
  327. }
  328. List<UptownHome> uptownHomes = uptownHomeMapper.getUptownHomeByPhone(outUser.getPhone().toString());
  329. if (uptownHomes.size() > 0) {
  330. outUser.setName(uptownHomes.get(0).getLinkman());
  331. } else {
  332. return Model.newFail("该号码并未注册,请仔细检查该号码。");
  333. }
  334. outUser.setTuId(IdWorker.getId());
  335. outUser.setTuType(1);
  336. outUser.setStartDate(new Date());
  337. outUser.setEndDate(new Date());
  338. outUser.setTime(1);
  339. outUser.setUserCreate(JwtHelper.getUserId());
  340. outUser.setUserUpdate(JwtHelper.getUserId());
  341. return Model.newSuccess(outUserMapper.insert(outUser));
  342. }
  343. @ApiOperation("凌云保存二类特殊人员")
  344. @PostMapping("/whepi/OutUser/saveOutUserLY2")
  345. public Model saveOutUserLY2(@JsonBody OutUser outUser) {
  346. OutUser outUser1 = outUserMapper.queryOutUserByPhone(5, outUser.getPhone());
  347. if (outUser1 != null) {
  348. return Model.newFail("该号码已经添加为特殊人员,请仔细检查该号码。");
  349. }
  350. List<UptownHome> uptownHomes = uptownHomeMapper.getUptownHomeByPhone(outUser.getPhone().toString());
  351. if (uptownHomes.size() > 0) {
  352. outUser.setName(uptownHomes.get(0).getLinkman());
  353. } else {
  354. return Model.newFail("该号码并未注册,请仔细检查该号码。");
  355. }
  356. outUser.setTuId(IdWorker.getId());
  357. outUser.setTuType(5);
  358. outUser.setStartDate(new Date());
  359. outUser.setEndDate(new Date());
  360. outUser.setTime(1);
  361. outUser.setUserCreate(JwtHelper.getUserId());
  362. outUser.setUserUpdate(JwtHelper.getUserId());
  363. return Model.newSuccess(outUserMapper.insert(outUser));
  364. }
  365. @ApiOperation("凌云保存六类人员")
  366. @PostMapping("/whepi/OutUser/saveOutUserLYSix")
  367. public Model saveOutUserLYSix(@JsonBody OutUser outUser) {
  368. OutUser outUser1 = outUserMapper.queryOutUserByPhone(4, outUser.getPhone());
  369. if (outUser1 != null) {
  370. return Model.newFail("该号码已经添加为六类人员,请仔细检查该号码。");
  371. }
  372. List<UptownHome> uptownHomes = uptownHomeMapper.getUptownHomeByPhone(outUser.getPhone().toString());
  373. if (uptownHomes.size() > 0) {
  374. outUser.setName(uptownHomes.get(0).getLinkman());
  375. } else {
  376. return Model.newFail("该号码并未注册,请仔细检查该号码。");
  377. }
  378. outUser.setTuId(IdWorker.getId());
  379. outUser.setTuType(4);
  380. outUser.setStartDate(new Date());
  381. outUser.setEndDate(new Date());
  382. outUser.setTime(1);
  383. outUser.setUserCreate(JwtHelper.getUserId());
  384. outUser.setUserUpdate(JwtHelper.getUserId());
  385. return Model.newSuccess(outUserMapper.insert(outUser));
  386. }
  387. @ApiOperation("湖北和昌新材料科技保存特殊人员")
  388. @PostMapping("/whepi/OutUser/saveOutUserHC")
  389. public Model saveOutUserHC(@JsonBody OutUser outUser) {
  390. OutUser outUser1 = outUserMapper.queryOutUserByPhone(3, outUser.getPhone());
  391. if (outUser1 != null) {
  392. return Model.newFail("该号码已经添加为特殊人员,请仔细检查该号码。");
  393. }
  394. List<UptownHome> uptownHomes = uptownHomeMapper.getUptownHomeByPhone(outUser.getPhone().toString());
  395. if (uptownHomes.size() > 0) {
  396. outUser.setName(uptownHomes.get(0).getLinkman());
  397. }
  398. outUser.setTuId(IdWorker.getId());
  399. outUser.setTuType(3);
  400. outUser.setStartDate(new Date());
  401. outUser.setEndDate(new Date());
  402. outUser.setTime(1);
  403. outUser.setUserCreate(JwtHelper.getUserId());
  404. outUser.setUserUpdate(JwtHelper.getUserId());
  405. return Model.newSuccess(outUserMapper.insert(outUser));
  406. }
  407. @ApiOperation("删除特殊人员的时间")
  408. @PostMapping("/whepi/OutUser/deleteOutUser")
  409. public Model deleteOutUser(@Pd(name = "ids") String ids) {
  410. return Model.newSuccess(outUserMapper.deleteOutUsers(ids));
  411. }
  412. @ApiOperation("人员离职")
  413. @PostMapping("/whepi/user/resignUser")
  414. public Model resignUser(@Pd(name = "ids") String ids) {
  415. return Model.newSuccess(outUserMapper.resignUser(ids));
  416. }
  417. @ApiOperation("人员入职")
  418. @PostMapping("/whepi/user/entryUser")
  419. public Model entryUser(@JsonBody UptownHouse uptownHouse) {
  420. return Model.newSuccess(outUserMapper.entryUser(uptownHouse.getIds(),uptownHouse.getUnitId(),uptownHouse.getDepartmentId()!=null?uptownHouse.getDepartmentId():0));
  421. }
  422. @ApiOperation("工号变更")
  423. @PostMapping("/whepi/user/editUser")
  424. public Model editUser(@JsonBody UptownHouse uptownHouse) {
  425. return Model.newSuccess(uptownHouseMapper.updateById(uptownHouse));
  426. }
  427. @ApiOperation("小区进出二维码")
  428. @PostMapping("/whepi/qrImg/scanQrImg")
  429. public Model<List<UptownDoor>> scanQrImg(HttpParameterParser parser, PageDb pagination) throws IOException, WriterException {
  430. List<UptownDoor> list = uptownDoorMapper.getAllUptownDoor(pagination, parser.getMap());
  431. for (UptownDoor door : list) {
  432. if (door.getUptownId() == 1238790987234L || door.getUptownId() == 5) {
  433. if (door.getInImg().equals("")) {
  434. String img = scan_qr(door.getDoorId(),1,door.getDoorName()+getName(1));
  435. uptownDoorMapper.updateDoorQc("in_img", img, door.getDoorId());
  436. door.setInImg(img);
  437. }
  438. if (door.getOutImg().equals("")) {
  439. String img = scan_qr(door.getDoorId(),2, door.getDoorName()+getName(2));
  440. uptownDoorMapper.updateDoorQc("out_img", img, door.getDoorId());
  441. door.setOutImg(img);
  442. }
  443. } else {
  444. if (door.getInImg().equals("")) {
  445. String img = scan_qr(door.getDoorId(),1,door.getUptownName()+door.getDoorName()+getName(1));
  446. uptownDoorMapper.updateDoorQc("in_img", img, door.getDoorId());
  447. door.setInImg(img);
  448. }
  449. if (door.getOutImg().equals("")) {
  450. String img = scan_qr(door.getDoorId(),2,door.getUptownName()+door.getDoorName()+getName(2));
  451. uptownDoorMapper.updateDoorQc("out_img", img, door.getDoorId());
  452. door.setOutImg(img);
  453. }
  454. }
  455. }
  456. return Model.newSuccess(pagination, list);
  457. }
  458. @ApiOperation("获取小区大门详细")
  459. @GetMapping("/whepi/qrImg/getDoorById")
  460. public Model<UptownDoor> getDoorById(HttpParameterParser parser, @Pd(name = "doorId") Long doorId) {
  461. return Model.newSuccess(uptownDoorMapper.getUptownDoorById(doorId));
  462. }
  463. @ApiOperation("获取部门数据")
  464. @PostMapping("/whepi/qrImg/getDLYbumen")
  465. public Model<List<UptownUnit>> getDLYbumen(@Pd(name = "query", required = false, defaultValue = "") String query) {
  466. return Model.newSuccess(uptownUnitMapper.getDLYbumen(query));
  467. }
  468. @ApiOperation("获取部门数据")
  469. @PostMapping("/whepi/qrImg/getHCBumen")
  470. public Model<List<UptownUnit>> getHCBumen(@Pd(name = "query", required = false, defaultValue = "") String query) {
  471. return Model.newSuccess(uptownUnitMapper.getHCBumen(query));
  472. }
  473. @ApiOperation("保存小区大门信息")
  474. @PostMapping("/whepi/qrImg/insertDoor")
  475. public Model insert(@JsonBody UptownDoor uptownDoor) {
  476. List<UptownDoor> list = uptownDoorMapper.getUptownDoor(uptownDoor.getDoorName(), uptownDoor.getUptownId());
  477. if (list.size() > 0) {
  478. return Model.newFail("当前小区已经添加该门");
  479. }
  480. return Model.newSuccess(scanAdminService.saveUptownDoor(uptownDoor));
  481. }
  482. @ApiOperation("获取小区大门详细")
  483. @PostMapping("/whepi/qrImg/getUptown")
  484. public Model<List<Uptown>> getUptown(HttpParameterParser parser, PageDb pagination) {
  485. return Model.newSuccess(pagination, uptownMapper.getUptowns(pagination, parser.getMap()));
  486. }
  487. @ApiOperation("允许复工人员")
  488. @GetMapping("/whepi/returnWork/returnWork")
  489. public void returnWork(HttpParameterParser parser) {
  490. scanService.returnWorkLY(0L);
  491. Map<String, Object> map = new HashMap<>();
  492. List<ReturnWorkLy> list = returnWorkLyMapper.exgetAllUser(map);
  493. }
  494. @ApiOperation("导出允许复工人员")
  495. @SneakyThrows
  496. @GetMapping("/whepi/returnWork/exReturnWork")
  497. public void exReturnWork(HttpParameterParser parser,HttpServletResponse resp,
  498. @Pd(name = "unitId" , required = false, defaultValue = "0") Long unitId,
  499. @Pd(name = "departmentId" , required = false, defaultValue = "0") Long departmentId) {
  500. Long userId = JwtHelper.getUserId();
  501. if (userId > 7000 && userId < 8000) {
  502. unitId = userId;
  503. }
  504. scanService.returnWorkLY(unitId);
  505. Map<String, Object> map = new HashMap<>();
  506. map.put("unitId", unitId);
  507. map.put("departmentId", departmentId);
  508. List<ReturnWorkLy> list = returnWorkLyMapper.exgetAllUser(map);
  509. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  510. ExcelUtils.writeSheet(ReturnWorkLy.class, list).export(resp,"凌云集团正常复工员工" + sdf.format(new Date()));
  511. }
  512. @ApiOperation("凌云签到")
  513. @PostMapping("/whepi/clock/selectClockLY")
  514. public Model<List<OutScanClock>> selectClockLY(PageDb pageDb,HttpParameterParser parser) {
  515. List<OutScanClock> sysUptownHouses = sweepCodeService.selectClockLY(pageDb,parser.getMap());
  516. return Model.newSuccess(pageDb,sysUptownHouses);
  517. }
  518. @ApiOperation("凌云签到导出")
  519. @PostMapping("/whepi/clock/exSelectClockLY")
  520. @SneakyThrows
  521. public void exSelectClockLY(HttpParameterParser parser,HttpServletResponse resp) {
  522. List<OutScanClock> list = sweepCodeService.exSelectClockLY(parser.getMap());
  523. ExcelUtils.writeSheet(OutScanClock.class, list).export(resp,"出入管理");
  524. }
  525. @ApiOperation("凌云分单位统计考勤")
  526. @PostMapping("/whepi/clock/exClockCount")
  527. @SneakyThrows
  528. public void exClockCount(HttpParameterParser parser,HttpServletResponse resp) {
  529. List<Clock> list = sweepCodeService.exClockCount(parser.getMap());
  530. ExcelUtils.writeSheet(Clock.class, list).export(resp,"分单位统计考勤");
  531. }
  532. // 获取code
  533. private static final String oauth2 = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=";
  534. private static final String moreUrl = "&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
  535. @Value("${yvan.wechat.appID}")
  536. private String appId;
  537. @Value("${yvan.wechat.domain}")
  538. private String domain;
  539. /**
  540. * 生成进出门二维码
  541. * @param doorId 小区大门ID
  542. * @param inType 1进入;2外出
  543. * @param response
  544. * @throws IOException
  545. * @throws WriterException
  546. */
  547. // @GetMapping(value = "/whepi/scan/scan_qr")
  548. // public String scanQrImg(@Pd(name = "doorId") Long doorId, @Pd(name = "inType") Integer inType, @Pd(name = "name") String name,
  549. // HttpServletResponse response) throws IOException, WriterException {
  550. // String url = oauth2+appId +"&redirect_uri="+URLEncoder.encode(domain()+"user/scan.html?doorId="+doorId+"&inType="+inType,"utf-8")+moreUrl;
  551. // String file = QRCode.createBase64Img(url, "家园互助平台", name);
  552. // return file;
  553. // }
  554. public String scan_qr(Long doorId, Integer inType, String name)
  555. throws IOException, WriterException {
  556. String url = oauth2+appId +"&redirect_uri="+URLEncoder.encode(domain()+"user/scan.html?doorId="+doorId+"&inType="+inType,"utf-8")+moreUrl;
  557. String file = QRCode.createBase64Img(url, "家园互助平台", name);
  558. return file;
  559. }
  560. /**
  561. * 生成校园巡逻二维码
  562. * @throws IOException
  563. * @throws WriterException
  564. */
  565. @GetMapping(value = "/whepi/scan/scanEstate_qr")
  566. public String scanEstateQrImg(HttpServletResponse response) throws IOException, WriterException {
  567. String url = oauth2 + appId + "&redirect_uri=" + URLEncoder.encode( domain() + "user/scanEstate.html","utf-8") + moreUrl;
  568. String file = QRCode.createBase64Img(url, "家园互助平台", "校园巡检二维码");
  569. return file;
  570. }
  571. public String domain() {
  572. if (domain.substring(domain.length()-1).equals("/")) {
  573. return domain;
  574. } else {
  575. return domain + "/";
  576. }
  577. }
  578. public String getName(Integer inType) {
  579. if (inType == 1) {
  580. return "入口";
  581. } else if (inType == 2) {
  582. return "出口";
  583. }
  584. return null;
  585. }
  586. }