CmInstrumentMaintenanceController.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. package com.caimei.modules.newhome.web;
  2. import javax.annotation.Resource;
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5. import com.caimei.dfs.image.beens.ImageUploadInfo;
  6. import com.caimei.modules.common.utils.UploadUtils;
  7. import com.caimei.modules.newhome.entity.CmInstrumentMaintenanceLinks;
  8. import com.caimei.modules.newhome.service.CmInstrumentMaintenanceLinksService;
  9. import com.caimei.modules.sys.utils.UploadImageUtils;
  10. import com.caimei.utils.AppUtils;
  11. import com.thinkgem.jeesite.common.utils.Encodes;
  12. import org.apache.shiro.authz.annotation.RequiresPermissions;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Controller;
  15. import org.springframework.ui.Model;
  16. import org.springframework.web.bind.annotation.ModelAttribute;
  17. import org.springframework.web.bind.annotation.RequestMapping;
  18. import org.springframework.web.bind.annotation.RequestParam;
  19. import org.springframework.web.bind.annotation.ResponseBody;
  20. import org.springframework.web.servlet.mvc.support.RedirectAttributes;
  21. import com.thinkgem.jeesite.common.config.Global;
  22. import com.thinkgem.jeesite.common.persistence.Page;
  23. import com.thinkgem.jeesite.common.web.BaseController;
  24. import com.thinkgem.jeesite.common.utils.StringUtils;
  25. import com.caimei.modules.newhome.entity.CmInstrumentMaintenance;
  26. import com.caimei.modules.newhome.service.CmInstrumentMaintenanceService;
  27. import java.lang.reflect.Field;
  28. import java.lang.reflect.InvocationTargetException;
  29. import java.lang.reflect.Method;
  30. import java.text.SimpleDateFormat;
  31. import java.util.*;
  32. /**
  33. * 仪器维修Controller
  34. *
  35. * @author lwt
  36. * @version 2019-03-15
  37. */
  38. @Controller
  39. @RequestMapping(value = "${adminPath}/newhome/cmInstrumentMaintenance")
  40. public class CmInstrumentMaintenanceController extends BaseController {
  41. @Resource
  42. private CmInstrumentMaintenanceService cmInstrumentMaintenanceService;
  43. @Resource
  44. private CmInstrumentMaintenanceLinksService cmInstrumentMaintenanceLinksService;
  45. @ModelAttribute
  46. public CmInstrumentMaintenance get(@RequestParam(required = false) String id) {
  47. CmInstrumentMaintenance entity = null;
  48. if (StringUtils.isNotBlank(id)) {
  49. entity = cmInstrumentMaintenanceService.get(id);
  50. }
  51. if (entity == null) {
  52. entity = new CmInstrumentMaintenance();
  53. }
  54. return entity;
  55. }
  56. @RequiresPermissions("newhome:cmInstrumentMaintenance:view")
  57. @RequestMapping(value = {"list", ""})
  58. public String list(CmInstrumentMaintenance cmInstrumentMaintenance, HttpServletRequest request, HttpServletResponse response, Model model) {
  59. if (null != cmInstrumentMaintenance.getStartTime() && !"".equals(cmInstrumentMaintenance.getStartTime()) && !cmInstrumentMaintenance.getStartTime().endsWith("00:00:00")) {
  60. cmInstrumentMaintenance.setStartTime(cmInstrumentMaintenance.getStartTime() + " 00:00:00");
  61. }
  62. if (null != cmInstrumentMaintenance.getEndTime() && !"".equals(cmInstrumentMaintenance.getEndTime()) && !cmInstrumentMaintenance.getEndTime().endsWith("23:59:59")) {
  63. cmInstrumentMaintenance.setEndTime(cmInstrumentMaintenance.getEndTime() + " 23:59:59");
  64. }
  65. Page<CmInstrumentMaintenance> page = cmInstrumentMaintenanceService.findPage(new Page<>(request, response), cmInstrumentMaintenance);
  66. String wwwServer = Global.getConfig("wwwServer");
  67. for (CmInstrumentMaintenance bean : page.getList()) {
  68. String type = "";
  69. if ("1".equals(bean.getStatus()) && "1".equals(bean.getAuthenticity())) {
  70. type = "2";
  71. }
  72. if ("2".equals(bean.getStatus()) || "3".equals(bean.getStatus())) {
  73. type = "3";
  74. }
  75. if (StringUtils.isNoneBlank(type)) {
  76. CmInstrumentMaintenanceLinks l = cmInstrumentMaintenanceLinksService.findWithType(bean.getId(), type);
  77. if (l != null){
  78. bean.setLink(wwwServer + "supplier/repair/detail.html?code=" + l.getLinkCode());
  79. }
  80. }
  81. }
  82. model.addAttribute("page", page);
  83. return "modules/newhome/cmInstrumentMaintenanceList";
  84. }
  85. @RequiresPermissions("newhome:cmInstrumentMaintenance:view")
  86. @RequestMapping(value = "form")
  87. public String form(CmInstrumentMaintenance cmInstrumentMaintenance, Model model) {
  88. List<String> instrumentImages = new ArrayList<>();
  89. Class clazz = cmInstrumentMaintenance.getClass();
  90. //有五张仪器检修图 getInstrumentImage1 ~ 5
  91. for (int i = 1; i <= 5; i++) {
  92. try {
  93. Method method = clazz.getDeclaredMethod("getInstrumentImage" + i);
  94. Object image = method.invoke(cmInstrumentMaintenance);
  95. if (image != null && StringUtils.isNoneEmpty(image.toString()))
  96. instrumentImages.add(image.toString());
  97. } catch (NoSuchMethodException e) {
  98. e.printStackTrace();
  99. } catch (IllegalAccessException e) {
  100. e.printStackTrace();
  101. } catch (InvocationTargetException e) {
  102. e.printStackTrace();
  103. }
  104. }
  105. CmInstrumentMaintenanceLinks b = null;
  106. if ("1".equals(cmInstrumentMaintenance.getStatus()) && "1".equals(cmInstrumentMaintenance.getAuthenticity())) { //已提交状态下 维修商只能查看部分信息
  107. b = cmInstrumentMaintenanceLinksService.findWithType(cmInstrumentMaintenance.getId(), "2");
  108. }
  109. if ("2".equals(cmInstrumentMaintenance.getStatus()) || "3".equals(cmInstrumentMaintenance.getStatus())) {
  110. b = cmInstrumentMaintenanceLinksService.findWithType(cmInstrumentMaintenance.getId(), "3");
  111. }
  112. if (b != null && StringUtils.isNoneEmpty(b.getLinkCode())) {
  113. String wwwServer = Global.getConfig("wwwServer");
  114. String link = wwwServer + "supplier/repair/detail.html?code=" + b.getLinkCode();
  115. model.addAttribute("link", link);
  116. }
  117. model.addAttribute("cmInstrumentMaintenance", cmInstrumentMaintenance);
  118. model.addAttribute("instrumentImages", instrumentImages);
  119. return "modules/newhome/cmInstrumentMaintenanceForm";
  120. }
  121. @RequiresPermissions("newhome:cmInstrumentMaintenance:edit")
  122. @RequestMapping(value = "save")
  123. public String save(CmInstrumentMaintenance cmInstrumentMaintenance, Model model, RedirectAttributes redirectAttributes, HttpServletRequest request) {
  124. if (!beanValidator(model, cmInstrumentMaintenance)) {
  125. return form(cmInstrumentMaintenance, model);
  126. }
  127. Class clazz = cmInstrumentMaintenance.getClass();
  128. for (int i = 1; i <= 5; i++) {
  129. try {
  130. Method getMethod = clazz.getDeclaredMethod("getInstrumentImage" + i);
  131. Object image = getMethod.invoke(cmInstrumentMaintenance);
  132. if ("".equals(image)) {
  133. Field field = clazz.getDeclaredField("instrumentImage" + i);
  134. field.setAccessible(true);
  135. field.set(cmInstrumentMaintenance, null);
  136. field.setAccessible(false);
  137. continue;
  138. }
  139. if (image != null && StringUtils.isNoneEmpty(image.toString()) && !image.toString().startsWith("http")) {
  140. String img = saveImageToServer(image.toString(), request);
  141. Field field = clazz.getDeclaredField("instrumentImage" + i);
  142. field.setAccessible(true);
  143. field.set(cmInstrumentMaintenance, img);
  144. field.setAccessible(false);
  145. }
  146. } catch (NoSuchMethodException e) {
  147. e.printStackTrace();
  148. } catch (IllegalAccessException e) {
  149. e.printStackTrace();
  150. } catch (InvocationTargetException e) {
  151. e.printStackTrace();
  152. } catch (NoSuchFieldException e) {
  153. e.printStackTrace();
  154. }
  155. }
  156. if (StringUtils.isEmpty(cmInstrumentMaintenance.getId()))
  157. cmInstrumentMaintenanceService.save(cmInstrumentMaintenance);
  158. else
  159. cmInstrumentMaintenanceService.update(cmInstrumentMaintenance);
  160. addMessage(redirectAttributes, "保存仪器维修成功");
  161. return "redirect:" + Global.getAdminPath() + "/newhome/cmInstrumentMaintenance/?repage";
  162. }
  163. @RequiresPermissions("newhome:cmInstrumentMaintenance:delete")
  164. @RequestMapping(value = "delete")
  165. public String delete(CmInstrumentMaintenance cmInstrumentMaintenance, RedirectAttributes redirectAttributes) {
  166. cmInstrumentMaintenanceService.delete(cmInstrumentMaintenance);
  167. addMessage(redirectAttributes, "删除仪器维修成功");
  168. return "redirect:" + Global.getAdminPath() + "/newhome/cmInstrumentMaintenance/?repage";
  169. }
  170. @RequiresPermissions("newhome:cmInstrumentMaintenance:edit")
  171. @RequestMapping(value = "cancel")
  172. @ResponseBody
  173. public Map<String, Object> cancel(CmInstrumentMaintenance cmInstrumentMaintenance, RedirectAttributes redirectAttributes) {
  174. Map<String, Object> result = new HashMap<>();
  175. try {
  176. if (StringUtils.isNoneEmpty(cmInstrumentMaintenance.getId())) {
  177. cmInstrumentMaintenance.setStatus("4");
  178. cmInstrumentMaintenance.setCancelDate(new Date());
  179. cmInstrumentMaintenance.setAuthenticity("2");
  180. cmInstrumentMaintenanceService.update(cmInstrumentMaintenance);
  181. result.put("errcode", "0");
  182. } else {
  183. throw new Exception("参数有误!");
  184. }
  185. } catch (Exception e) {
  186. result.put("errcode", "1");
  187. result.put("errmsg", e.getMessage());
  188. }
  189. return result;
  190. }
  191. public String saveImageToServer(String imagesHead, HttpServletRequest request){
  192. String photoServer = Global.getConfig("photoServer");//获取文件服务器地址
  193. String res = "";
  194. ImageUploadInfo saveImageSerivce=new ImageUploadInfo();
  195. if(StringUtils.isNotBlank(imagesHead) && !imagesHead.startsWith("http:") && !imagesHead.startsWith("https:")){
  196. imagesHead= Encodes.urlDecode(imagesHead);
  197. // String realPath = request.getSession().getServletContext().getRealPath(imagesHead);
  198. String realPath = UploadImageUtils.getAbsolutePath(imagesHead);
  199. // realPath=Encodes.urlDecode(realPath);
  200. int pointerIndex = realPath.lastIndexOf(".");
  201. try {
  202. saveImageSerivce = UploadUtils.saveImageSerivce(realPath, pointerIndex,realPath);
  203. res = photoServer+saveImageSerivce.getSource();
  204. } catch (Exception e) {
  205. logger.error("图片上传错误:"+e.toString(),e);
  206. }
  207. }
  208. return res;
  209. }
  210. }