TMaintenanceController.java 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359
  1. package com.steerinfo.ems.tmaintenance.controller;
  2. import com.steerinfo.auth.utils.JwtUtil;
  3. import com.steerinfo.ems.Utils.DateUtils;
  4. import com.steerinfo.ems.tmaintenancefile.model.TMaintenanceFile;
  5. import com.steerinfo.ems.tmaintenancefile.service.ITMaintenanceFileService;
  6. import com.steerinfo.ems.tsubmitted.model.TSubmitted;
  7. import com.steerinfo.framework.controller.BaseRESTfulController;
  8. import com.steerinfo.framework.controller.RESTfulResult;
  9. import com.steerinfo.framework.service.pagehelper.PageList;
  10. import com.steerinfo.framework.utils.collection.ListUtils;
  11. import com.steerinfo.ems.tmaintenance.model.TMaintenance;
  12. import com.steerinfo.ems.tmaintenance.service.ITMaintenanceService;
  13. import com.steerinfo.ftp.uploadfile.utils.FtpFileUtil;
  14. import com.steerinfo.ftp.uploadfile.utils.IDutils;
  15. import io.swagger.annotations.ApiImplicitParam;
  16. import io.swagger.annotations.ApiImplicitParams;
  17. import io.swagger.annotations.ApiOperation;
  18. import org.apache.commons.lang3.StringUtils;
  19. import org.apache.shiro.authz.annotation.RequiresPermissions;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.web.bind.annotation.*;
  22. import org.springframework.web.multipart.MultipartFile;
  23. import javax.servlet.http.HttpServletResponse;
  24. import java.io.File;
  25. import java.io.InputStream;
  26. import java.text.SimpleDateFormat;
  27. import java.util.*;
  28. import java.math.BigDecimal;
  29. import java.util.stream.Collectors;
  30. /**
  31. * TMaintenance RESTful接口:
  32. * @author generator
  33. * @version 1.0-SNAPSHORT 2022-06-09 09:13
  34. * 类描述
  35. * 修订历史:
  36. * 日期:2022-06-09
  37. * 作者:generator
  38. * 参考:
  39. * 描述:TMaintenance RESTful接口
  40. * @see null
  41. * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
  42. */
  43. @RestController
  44. @RequestMapping("/${api.version}/tmaintenances")
  45. public class TMaintenanceController extends BaseRESTfulController {
  46. /** 文件保存路径 */
  47. public static final String FILE_DIR = "/static/";
  48. @Autowired
  49. ITMaintenanceService tMaintenanceService;
  50. @Autowired
  51. private FtpFileUtil ftpFileUtil;
  52. @Autowired
  53. ITMaintenanceFileService tMaintenanceFileService;
  54. @ApiOperation(value="获取列表", notes="分页查询")
  55. @ApiImplicitParams({
  56. @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
  57. @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer")
  58. })
  59. //@RequiresPermissions("tmaintenance:view")
  60. @GetMapping(value = "/")
  61. public RESTfulResult list(@RequestParam HashMap parmas,Integer pageNum, Integer pageSize){
  62. PageList<TMaintenance> list = tMaintenanceService.queryForPage(parmas, pageNum, pageSize);
  63. return success(list);
  64. }
  65. @ApiOperation(value="获取列表", notes="分页模糊查询")
  66. @ApiImplicitParams({
  67. @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
  68. @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer")
  69. })
  70. @GetMapping(value = "/like/")
  71. public RESTfulResult listLike(@RequestParam HashMap parmas,Integer pageNum, Integer pageSize){
  72. PageList<TMaintenance> list = tMaintenanceService.queryLikeForPage(parmas, pageNum, pageSize);
  73. return success(list);
  74. }
  75. @ApiOperation(value="创建", notes="根据TMaintenance对象创建")
  76. @ApiImplicitParam(name = "tMaintenance", value = "详细实体tMaintenance", required = true, dataType = "TMaintenance")
  77. //@RequiresPermissions("tmaintenance:create")
  78. @PostMapping(value = "/")
  79. public RESTfulResult add(@ModelAttribute TMaintenance model){
  80. TMaintenance tMaintenance = tMaintenanceService.add(model);
  81. return success(tMaintenance);
  82. }
  83. @ApiOperation(value="获取详细信息", notes="根据url的id来获取详细信息")
  84. @ApiImplicitParam(paramType = "path", name = "id", value = "ID", required = true, dataType = "String")
  85. //@RequiresPermissions("tmaintenance:view")
  86. @GetMapping(value = "/{id}")
  87. public RESTfulResult get(@PathVariable String id){
  88. TMaintenance tMaintenance = tMaintenanceService.getById(id);
  89. return success(tMaintenance);
  90. }
  91. @ApiOperation(value="更新详细信息", notes="根据url的id来指定更新对象,并根据传过来的tMaintenance信息来更新详细信息")
  92. @ApiImplicitParams({
  93. @ApiImplicitParam(paramType = "path", name = "id", value = "ID", required = true, dataType = "String"),
  94. @ApiImplicitParam(name = "tMaintenance", value = "详细实体tMaintenance", required = true, dataType = "TMaintenance")
  95. })
  96. //@RequiresPermissions("tmaintenance:update")
  97. @PutMapping(value = "/{id}", produces = "application/json;charset=UTF-8")
  98. public RESTfulResult update(@PathVariable String id, @RequestBody TMaintenance model){
  99. model.setId(id);
  100. TMaintenance tMaintenance = tMaintenanceService.modify(model);
  101. return success(tMaintenance);
  102. }
  103. @ApiOperation(value="删除", notes="根据url的id来指定删除对象")
  104. @ApiImplicitParam(paramType = "path", name = "id", value = "ID", required = true, dataType = "String")
  105. //@RequiresPermissions("tmaintenance:delete")
  106. @DeleteMapping(value = "/{id}")//String
  107. public RESTfulResult delete(@PathVariable String id){
  108. List<String> list = Arrays.asList(id.split(","));
  109. if(ListUtils.isNotEmpty(list)) {
  110. List<String> ids = ListUtils.convertList(list);
  111. tMaintenanceService.delete(ids);
  112. }
  113. return success();
  114. }
  115. @ApiOperation(value = "创建", notes = "根据TMaintenance对象创建")
  116. @ApiImplicitParam(name = "tMaintenance", value = "详细实体tMaintenance", required = true, dataType = "TMaintenance")
  117. //@RequiresPermissions("tmaintenance:create")
  118. @PostMapping(value = "/addone")
  119. public RESTfulResult addone(@ModelAttribute TMaintenance model) {
  120. //丛前端获取申报日期,利用SimpleDateFormat类转换为字符串
  121. String declaretime = model.getDeclaretime();
  122. //将转换为字符串的日期进行截取,截取出月和日
  123. String mouth = declaretime.substring(5, 7);
  124. String day = declaretime.substring(8, 10);
  125. Integer maxid = tMaintenanceService.MaxID(mouth);
  126. String id = model.getDeclareid() + mouth + "_" + day + "_" + maxid;
  127. model.setRecord(maxid);
  128. model.setDeclareid(id);
  129. TMaintenance tMaintenance = tMaintenanceService.add(model);
  130. return success(tMaintenance);
  131. }
  132. //查出所有数据
  133. @GetMapping("/getAll")
  134. public RESTfulResult getall() {
  135. List<TMaintenance> tMaintenance = tMaintenanceService.selectAll();
  136. return success(tMaintenance);
  137. }
  138. //逻辑删除
  139. @PutMapping(value = "/del/{ids}")
  140. public RESTfulResult delectMes(@PathVariable String[] ids) {
  141. String dateid = DateUtils.getCurrentTime("yyyy-MM-dd HH:mm:ss");
  142. int count = 0;
  143. for (int i = 0; i < ids.length; i++) {
  144. count = tMaintenanceService.deleMes(ids[i], dateid);
  145. }
  146. return success(count, "本次共删除" + count + "条数据");
  147. }
  148. //取消提交
  149. @PutMapping(value = "/updatecheck/{ids}")
  150. public RESTfulResult updatecheck(@PathVariable String[] ids) {
  151. String dateid = DateUtils.getCurrentTime("yyyy-MM-dd HH:mm:ss");
  152. int count = 0;
  153. for (int i = 0; i < ids.length; i++) {
  154. count = tMaintenanceService.updatecheck(ids[i]);
  155. }
  156. return success(count, "本次共删除" + count + "条数据");
  157. }
  158. //修改
  159. @PutMapping(value = "/pus/")
  160. public RESTfulResult putMes(@ModelAttribute MultipartFile[] file, TMaintenance model, String del) {
  161. String datetime = DateUtils.getCurrentTime("yyyy-MM-dd HH:mm:ss");
  162. if (model == null) {
  163. return failed(null, "参数错误!");
  164. }
  165. TMaintenance tMaintenance = new TMaintenance();
  166. String bid = model.getDeclareid();
  167. model.setChargetime(datetime);
  168. tMaintenanceService.modify(model);
  169. String filesid = "";
  170. if (file!=null){
  171. for (int i = 0; i <file.length ; i++) {
  172. try {
  173. String userId = JwtUtil.getUseridByToken();
  174. //获取系统时间
  175. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("/yyyy/MM/dd");
  176. //获取文件名
  177. String oldName = file[i].getOriginalFilename();
  178. //取当前时间的长整形值包含毫秒
  179. String newName = IDutils.getImageName();
  180. //重新命名文件
  181. newName = newName + oldName.substring(oldName.lastIndexOf("."));
  182. String filePath = simpleDateFormat.format(new Date());
  183. //获取输入流
  184. InputStream inputStream = file[i].getInputStream();
  185. boolean result = ftpFileUtil.uploadToFtp(inputStream, filePath, newName, false);
  186. inputStream.close();
  187. if (result) {
  188. TMaintenanceFile uploadFile = new TMaintenanceFile();
  189. uploadFile.setFilename(oldName);
  190. uploadFile.setFilepath(filePath + "/" + newName);
  191. uploadFile.setId(model.getDeclareid());
  192. TMaintenanceFile modela = tMaintenanceFileService.add(uploadFile);
  193. if (modela != null) {
  194. filesid += "," + modela.getId();
  195. }
  196. } else {
  197. return failed(null, "上传文件失败");
  198. }
  199. } catch (Exception e) {
  200. e.getMessage();
  201. }
  202. }
  203. return success(filesid);
  204. }
  205. return success(tMaintenance);
  206. }
  207. //多项匹配模糊查询
  208. @GetMapping("/getmsg")
  209. public RESTfulResult getMsg(HashMap parameters) {
  210. List<TMaintenance> tMaintenance = tMaintenanceService.queryLike(parameters);
  211. return success(tMaintenance);
  212. }
  213. //批量
  214. // @PutMapping(value = "/pusAll")
  215. // public RESTfulResult pusAll( String[] declareid,String billstatus) {
  216. // for (int i = 0; i <declareid.length ; i++) {
  217. // tMaintenanceService.pusMesAll(declareid[i],billstatus);
  218. // }
  219. // return success();
  220. // }
  221. @PutMapping(value = "/pusAll")
  222. public RESTfulResult pusAll(@RequestBody TMaintenance[]params) {
  223. for (int i = 0; i <params.length ; i++) {
  224. String Declareid= params[i].getDeclareid();
  225. String Billstatus= params[i].getBillstatus();
  226. tMaintenanceService.pusMesAll(Declareid,Billstatus);
  227. }
  228. return success();
  229. }
  230. @ApiOperation(value="暂存", notes="根据url的id来指定更新对象,并根据传过来的tCm035信息来更新详细信息")
  231. @ApiImplicitParam(name = "tCm035", value = "详细实体tCm035", required = true, dataType = "TCm035")
  232. //@RequiresPermissions("tcm035:update")
  233. @PutMapping(value = "/submit/")
  234. public RESTfulResult update(@ModelAttribute MultipartFile[] file, TMaintenance model, String del){
  235. if (model == null) {
  236. return failed(null, "参数错误!");
  237. }
  238. TMaintenance tMaintenance = new TMaintenance();
  239. //丛前端获取申报日期,利用SimpleDateFormat类转换为字符串
  240. String declaretime = model.getDeclaretime();
  241. //将转换为字符串的日期进行截取,截取出月和日
  242. String mouth = declaretime.substring(5, 7);
  243. Integer maxid = tMaintenanceService.MaxID(mouth);
  244. model.setRecord(maxid);
  245. String updatetime = DateUtils.getCurrentTime("yyyy-MM-dd HH:mm:ss");
  246. model.setChargetime(updatetime);
  247. String bid = model.getDeclareid();
  248. model.setDeclareid(model.getDeclareid()+DateUtils.getCurrentTime("yyyyMMdd") + "_"+ String.format("%04d", maxid));
  249. tMaintenance = tMaintenanceService.add(model);
  250. String filesid = "";
  251. if (file!=null){
  252. for (int i = 0; i <file.length ; i++) {
  253. try {
  254. String userId = JwtUtil.getUseridByToken();
  255. //获取系统时间
  256. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("/yyyy/MM/dd");
  257. //获取文件名
  258. String oldName = file[i].getOriginalFilename();
  259. //取当前时间的长整形值包含毫秒
  260. String newName = IDutils.getImageName();
  261. //重新命名文件
  262. newName = newName + oldName.substring(oldName.lastIndexOf("."));
  263. String filePath = simpleDateFormat.format(new Date());
  264. //获取输入流
  265. InputStream inputStream = file[i].getInputStream();
  266. boolean result = ftpFileUtil.uploadToFtp(inputStream, filePath, newName, false);
  267. inputStream.close();
  268. if (result) {
  269. TMaintenanceFile uploadFile = new TMaintenanceFile();
  270. uploadFile.setFilename(oldName);
  271. uploadFile.setFilepath(filePath + "/" + newName);
  272. uploadFile.setId(model.getDeclareid());
  273. TMaintenanceFile modela = tMaintenanceFileService.add(uploadFile);
  274. if (modela != null) {
  275. filesid += "," + modela.getId();
  276. }
  277. } else {
  278. return failed(null, "上传文件失败");
  279. }
  280. } catch (Exception e) {
  281. e.getMessage();
  282. }
  283. }
  284. return success(filesid);
  285. }
  286. return success(tMaintenance);
  287. }
  288. //审批首页加载数据
  289. @GetMapping(value = "/likeapproval/")
  290. public RESTfulResult listLikeapproval(@RequestParam HashMap parmas, Integer pageNum, Integer pageSize) {
  291. PageList<TMaintenance> list = tMaintenanceService.listLikeapproval(parmas, pageNum, pageSize);
  292. return success(list);
  293. }
  294. //审批分类查询
  295. @GetMapping(value = "/likeapprovals/")
  296. public RESTfulResult listLikeapprovals(@RequestParam HashMap parmas, Integer pageNum, Integer pageSize) {
  297. PageList<TMaintenance> list = tMaintenanceService.listLikeapprovals(parmas, pageNum, pageSize);
  298. return success(list);
  299. }
  300. @PutMapping(value = "/pusAlla")
  301. public RESTfulResult pusAlla(@RequestBody TMaintenance[]params) {
  302. String datetime = DateUtils.getCurrentTime("yyyy-MM-dd");
  303. for (int i = 0; i <params.length ; i++) {
  304. String Declareid= params[i].getDeclareid();
  305. String Billstatus= params[i].getBillstatus();
  306. String approver = params[i].getApprover();
  307. tMaintenanceService.pusMesAlla(Declareid,Billstatus,approver,datetime);
  308. }
  309. return success();
  310. }
  311. //报工审批分类查询
  312. @GetMapping(value = "/approval/")
  313. public RESTfulResult listLikapproval(@RequestParam HashMap parmas, Integer pageNum, Integer pageSize) {
  314. PageList<TMaintenance> list = tMaintenanceService.approval(parmas, pageNum, pageSize);
  315. return success(list);
  316. }
  317. //根据报工状态改变审核单状态
  318. @PostMapping("/upstate/")
  319. public RESTfulResult upstate(@RequestParam HashMap<String,String> tSubmitted){
  320. TMaintenance tMaintenance = new TMaintenance();
  321. String declareid= tSubmitted.get("declareid");
  322. String state = tSubmitted.get("state");
  323. tMaintenance.setDeclareid(declareid);
  324. tMaintenance.setBillstatus(state);
  325. Integer count = tMaintenanceService.upstate(tMaintenance);
  326. return success(count);
  327. }
  328. //下载附件
  329. @RequestMapping(value = "/downloadFile")
  330. public void downloadFile(@RequestParam("fileUrl") String path, @RequestParam("fileName") String fileName, HttpServletResponse response) {
  331. try {
  332. boolean result = ftpFileUtil.download(response, fileName, path);
  333. if (!result) {
  334. //logger.error("下载文件<" + fileName + ">失败,文件不存在");
  335. response.sendError(HttpServletResponse.SC_NOT_FOUND, "下载文件失败,文件目录不存在或文件不存在。");
  336. }
  337. } catch (Exception e) {
  338. //logg.error("下载文件<" + fileName + ">失败", e);
  339. }
  340. }
  341. }