HxpStockController.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313
  1. package com.zd.chemical.controller;
  2. import com.zd.chemical.domain.HxpStock;
  3. import com.zd.chemical.domain.vo.HxpStockDetailVO;
  4. import com.zd.chemical.domain.vo.HxpStockJoinVO;
  5. import com.zd.chemical.domain.vo.HxpStockOutVO;
  6. import com.zd.chemical.domain.vo.HxpStockSearch;
  7. import com.zd.chemical.service.IHxpStockService;
  8. import com.zd.chemical.util.ChemicalUtils;
  9. import com.zd.chemical.util.SmsSydUtil;
  10. import com.zd.common.core.annotation.Log;
  11. import com.zd.common.core.annotation.PreAuthorize;
  12. import com.zd.common.core.log.BusinessType;
  13. import com.zd.common.core.security.TokenService;
  14. import com.zd.common.core.utils.ExcelUtil;
  15. import com.zd.common.core.utils.SecurityUtils;
  16. import com.zd.common.core.web.controller.BaseController;
  17. import com.zd.model.domain.R;
  18. import com.zd.model.domain.ResultData;
  19. import com.zd.model.domain.per.PerFun;
  20. import com.zd.model.domain.per.PerPrefix;
  21. import com.zd.model.entity.InventoryTag;
  22. import com.zd.model.page.TableDataInfo;
  23. import io.swagger.annotations.Api;
  24. import io.swagger.annotations.ApiOperation;
  25. import org.springframework.beans.factory.annotation.Autowired;
  26. import org.springframework.web.bind.annotation.*;
  27. import javax.servlet.http.HttpServletResponse;
  28. import javax.validation.constraints.NotNull;
  29. import java.io.IOException;
  30. import java.time.LocalDate;
  31. import java.util.ArrayList;
  32. import java.util.Arrays;
  33. import java.util.List;
  34. /**
  35. * 库存管理Controller
  36. *
  37. * @author liubo
  38. * @date 2022-06-17
  39. */
  40. @RestController
  41. @Api(tags = "【库存管理】")
  42. @RequestMapping("/hxpStock")
  43. public class HxpStockController extends BaseController {
  44. @Autowired
  45. private IHxpStockService hxpStockService;
  46. @Autowired
  47. private TokenService tokenService;
  48. @Autowired
  49. private SmsSydUtil smsSydUtil;
  50. /**
  51. * 查询库存管理列表
  52. */
  53. @PreAuthorize(hasPermi = "chemical:hxpStock:list")
  54. @GetMapping("/list")
  55. @ApiOperation(value = "查询库存管理列表")
  56. public TableDataInfo<HxpStock> list(HxpStock hxpStock) {
  57. startPage();
  58. List<HxpStock> list = hxpStockService.selectHxpStockList(hxpStock);
  59. return getDataTable(list);
  60. }
  61. /**
  62. * 导出库存管理列表
  63. */
  64. @ApiOperation(value = "导出库存管理列表")
  65. @PreAuthorize(hasPermi = "chemical:hxpStock:export")
  66. @Log(title = "库存管理", businessType = BusinessType.EXPORT)
  67. @PostMapping("/export")
  68. public void export(HttpServletResponse response, HxpStock hxpStock) throws IOException {
  69. List<HxpStock> list = hxpStockService.selectHxpStockList(hxpStock);
  70. ExcelUtil<HxpStock> util = new ExcelUtil<>(HxpStock.class);
  71. util.exportExcel(response, list, "库存管理数据");
  72. }
  73. /**
  74. * 查询库存管理列表(库存明细)
  75. */
  76. @PreAuthorize(hasPermi = PerPrefix.HXP_STOCKDETAIL+ PerFun.LIST)
  77. @GetMapping("/listDetail")
  78. @ApiOperation(value = "查询库存管理列表(库存明细)")
  79. public TableDataInfo<HxpStockDetailVO> listDetail(HxpStockSearch hxpStockSearch) {
  80. startPage();
  81. List<HxpStockDetailVO> list = hxpStockService.selectHxpStockListDetail(hxpStockSearch);
  82. //去除小数点后多余的0
  83. if (list != null && !list.isEmpty()) {
  84. list.stream().forEach(vo -> {
  85. vo.setChemicalAmountUnit(ChemicalUtils.removeZeroForAfterPoint(vo.getChemicalAmountUnit()));
  86. vo.setTareUnit(ChemicalUtils.removeZeroForAfterPoint(vo.getTareUnit()));
  87. vo.setOutUsages(ChemicalUtils.removeZeroForAfterPoint(vo.getOutUsages()));
  88. vo.setUsages(ChemicalUtils.removeZeroForAfterPoint(vo.getUsages()));
  89. });
  90. }
  91. return getDataTable(list);
  92. }
  93. /**
  94. * 导出化学品信息列表
  95. */
  96. @ApiOperation(value = "导出化学品信息列表")
  97. @PreAuthorize(hasPermi = PerPrefix.HXP_STOCK+ PerFun.DETAILEXPORT)
  98. @Log(title = "化学品信息", businessType = BusinessType.EXPORT)
  99. @PostMapping({"/exportDetail","/exportDetail/{ids}"})
  100. public void exportDetail(HttpServletResponse response, HxpStockSearch hxpStockSearch, @PathVariable(value = "ids",required = false) Long... ids) throws IOException {
  101. if(ids!=null&&ids.length>0)
  102. {
  103. hxpStockSearch = new HxpStockSearch();
  104. hxpStockSearch.setIds(Arrays.asList(ids));
  105. }
  106. List<HxpStockDetailVO> list = hxpStockService.selectHxpStockListDetail(hxpStockSearch);
  107. ExcelUtil<HxpStockDetailVO> util = new ExcelUtil<>(HxpStockDetailVO.class);
  108. //本地日期,不包括时分秒
  109. LocalDate nowDate = LocalDate.now();
  110. util.exportExcel(response, list, "化学品库存明细", null, "化学品库存明细-导出数据表"+nowDate);
  111. }
  112. /**
  113. * 查询库存管理列表(入库记录)
  114. */
  115. @PreAuthorize(hasPermi = PerPrefix.HXP_STOCKJOIN+ PerFun.LIST)
  116. @GetMapping("/listJoin")
  117. @ApiOperation(value = "查询库存管理列表(入库记录)")
  118. public TableDataInfo<HxpStockJoinVO> listJoin(HxpStockSearch hxpStockSearch) {
  119. startPage();
  120. List<HxpStockJoinVO> list = hxpStockService.selectHxpStockListJoin(hxpStockSearch);
  121. //去除小数点后多余的0
  122. if (list != null && !list.isEmpty()) {
  123. list.stream().forEach(vo -> {
  124. vo.setChemicalAmountUnit(ChemicalUtils.removeZeroForAfterPoint(vo.getChemicalAmountUnit()));
  125. vo.setTareUnit(ChemicalUtils.removeZeroForAfterPoint(vo.getTareUnit()));
  126. vo.setOutUsages(ChemicalUtils.removeZeroForAfterPoint(vo.getOutUsages()));
  127. vo.setUsages(ChemicalUtils.removeZeroForAfterPoint(vo.getUsages()));
  128. });
  129. }
  130. return getDataTable(list);
  131. }
  132. @GetMapping("/listJoinByUser")
  133. @ApiOperation(value = "学生端查询入库记录")
  134. public TableDataInfo<HxpStockJoinVO> listJoinByUser(HxpStockSearch hxpStockSearch) {
  135. startPage();
  136. hxpStockSearch.setLoginUserId(SecurityUtils.getUserId());
  137. List<HxpStockJoinVO> list = hxpStockService.selectHxpStockListJoin(hxpStockSearch);
  138. //去除小数点后多余的0
  139. if (list != null && !list.isEmpty()) {
  140. list.stream().forEach(vo -> {
  141. vo.setChemicalAmountUnit(ChemicalUtils.removeZeroForAfterPoint(vo.getChemicalAmountUnit()));
  142. vo.setTareUnit(ChemicalUtils.removeZeroForAfterPoint(vo.getTareUnit()));
  143. vo.setUsages(ChemicalUtils.removeZeroForAfterPoint(vo.getUsages()));
  144. });
  145. }
  146. return getDataTable(list);
  147. }
  148. /**
  149. * 导出化学品信息列表(入库记录)
  150. */
  151. @ApiOperation(value = "导出化学品信息列表")
  152. @PreAuthorize(hasPermi = PerPrefix.HXP_STOCK+ PerFun.JOINEXPORT)
  153. @Log(title = "化学品信息", businessType = BusinessType.EXPORT)
  154. @PostMapping({"/exportJoin","/exportJoin/{ids}"})
  155. public void exportJoin(HttpServletResponse response, HxpStockSearch hxpStockSearch, @PathVariable(value = "ids",required = false) Long... ids) throws IOException {
  156. if(ids!=null && ids.length>0)
  157. {
  158. hxpStockSearch = new HxpStockSearch();
  159. hxpStockSearch.setIds(Arrays.asList(ids));
  160. }
  161. List<HxpStockJoinVO> list = hxpStockService.selectHxpStockListJoin(hxpStockSearch);
  162. ExcelUtil<HxpStockJoinVO> util = new ExcelUtil<>(HxpStockJoinVO.class);
  163. //本地日期,不包括时分秒
  164. LocalDate nowDate = LocalDate.now();
  165. util.exportExcel(response, list, "化学品入库记录", null, "化学品入库记录-导出数据表"+nowDate);
  166. }
  167. /**
  168. * 查询库存管理列表(出库记录)
  169. */
  170. @PreAuthorize(hasPermi = PerPrefix.HXP_STOCKOUT+ PerFun.LIST)
  171. @GetMapping("/listOut")
  172. @ApiOperation(value = "查询库存管理列表(出库记录)")
  173. public TableDataInfo<HxpStockOutVO> listOut(HxpStockSearch hxpStockSearch) {
  174. startPage();
  175. List<HxpStockOutVO> list;
  176. if(tokenService.getLoginUser().getSysUser().getUserType().equals("22")) {
  177. hxpStockSearch.setLoginUserId(tokenService.getLoginUser().getUserid());
  178. list = hxpStockService.selectHxpStockListOut(hxpStockSearch);
  179. }else{
  180. list = hxpStockService.selectHxpStockListOut(hxpStockSearch);
  181. }
  182. //去除小数点后多余的0
  183. if (list != null && !list.isEmpty()) {
  184. list.stream().forEach(vo -> {
  185. vo.setChemicalAmountUnit(ChemicalUtils.removeZeroForAfterPoint(vo.getChemicalAmountUnit()));
  186. vo.setTareUnit(ChemicalUtils.removeZeroForAfterPoint(vo.getTareUnit()));
  187. vo.setOutUsages(ChemicalUtils.removeZeroForAfterPoint(vo.getOutUsages()));
  188. });
  189. }
  190. return getDataTable(list);
  191. }
  192. @GetMapping("/listOutByUser")
  193. @ApiOperation(value = "学生查询库存管理列表(出库记录)")
  194. public TableDataInfo<HxpStockJoinVO> listOutByUser(HxpStockSearch hxpStockSearch) {
  195. startPage();
  196. hxpStockSearch.setLoginUserId(SecurityUtils.getUserId());
  197. List<HxpStockOutVO> list = hxpStockService.selectHxpStockListOut(hxpStockSearch);
  198. //去除小数点后多余的0
  199. if (list != null && !list.isEmpty()) {
  200. list.stream().forEach(vo -> {
  201. vo.setChemicalAmountUnit(ChemicalUtils.removeZeroForAfterPoint(vo.getChemicalAmountUnit()));
  202. vo.setTareUnit(ChemicalUtils.removeZeroForAfterPoint(vo.getTareUnit()));
  203. vo.setOutUsages(ChemicalUtils.removeZeroForAfterPoint(vo.getOutUsages()));
  204. });
  205. }
  206. return getDataTable(list);
  207. }
  208. /**
  209. * 导出化学品信息列表(出库记录)
  210. */
  211. @ApiOperation(value = "导出化学品信息列表")
  212. @PreAuthorize(hasPermi = PerPrefix.HXP_STOCK+ PerFun.OUTEXPORT)
  213. @Log(title = "化学品信息", businessType = BusinessType.EXPORT)
  214. @PostMapping({"/exportOut","/exportOut/{ids}"})
  215. public void exportOut(HttpServletResponse response, HxpStockSearch hxpStockSearch, @PathVariable(value = "ids",required = false) Long... ids) throws IOException {
  216. if(ids!=null&&ids.length>0)
  217. {
  218. hxpStockSearch = new HxpStockSearch();
  219. hxpStockSearch.setIds(Arrays.asList(ids));
  220. }
  221. List<HxpStockOutVO> list = hxpStockService.selectHxpStockListOut(hxpStockSearch);
  222. ExcelUtil<HxpStockOutVO> util = new ExcelUtil<>(HxpStockOutVO.class);
  223. //本地日期,不包括时分秒
  224. LocalDate nowDate = LocalDate.now();
  225. util.exportExcel(response, list, "化学品出库记录", null, "化学品出库记录-导出数据表"+nowDate);
  226. }
  227. /**
  228. * 获取库存管理详细信息
  229. */
  230. @ApiOperation(value = "获取库存管理详细信息")
  231. @PreAuthorize(hasPermi = "chemical:hxpStock:query")
  232. @GetMapping(value = "/{id}")
  233. public ResultData<HxpStock> getInfo(@PathVariable("id") Long id) {
  234. return ResultData.success(hxpStockService.selectHxpStockById(id));
  235. }
  236. @ApiOperation(value = "RFID违规检测")
  237. @PostMapping(value = "/RFIDCheck")
  238. public R<Boolean> RFIDCheck(@RequestBody InventoryTag tag) {
  239. return R.ok(hxpStockService.RFIDCheck(tag));
  240. }
  241. /**
  242. * 化学品库存过期检测
  243. */
  244. @GetMapping(value = "/expireCheck")
  245. public void expireCheck() {
  246. hxpStockService.expireCheck();
  247. }
  248. /**
  249. * 四医大平台发送短信
  250. * @param content 发送内容
  251. * @param purpose 短信用途 1 化学品告警,2 登录,3 开锁,4 气瓶告警,5 预案告警
  252. * @param phones 手机号
  253. * @return 发送结果
  254. */
  255. @GetMapping(value = "/sendSydSms")
  256. public R sendSydSms(@RequestParam(value = "content") String content,
  257. @RequestParam(value = "purpose") Integer purpose,
  258. @RequestParam(value = "lockApplyId", required = false) Long lockApplyId,
  259. @RequestParam(value = "phones") @NotNull String... phones){
  260. try {
  261. return smsSydUtil.sendSydSms(content, purpose, lockApplyId, phones);
  262. } catch (Exception e) {
  263. logger.error("四医大短信调用发生异常!" + e.getMessage());
  264. return R.fail("短信发送失败:" + e.getMessage());
  265. }
  266. }
  267. /**
  268. * 化学品即将过期 已过期
  269. * @Param []
  270. * @Return com.zd.model.domain.ResultData
  271. **/
  272. @GetMapping(value = "/hxpExpired")
  273. @ApiOperation(value = "化学品即将过期 已过期")
  274. public ResultData hxpExpired() {
  275. hxpStockService.hxpExpired();
  276. return ResultData.success();
  277. }
  278. /**
  279. * 化学品超时未归还
  280. * @return
  281. */
  282. @GetMapping(value = "/hxpTimeOut")
  283. @ApiOperation(value = "化学品超时未归还")
  284. public ResultData hxpTimeOut() {
  285. hxpStockService.hxpTimeOut();
  286. return ResultData.success();
  287. }
  288. }