AdminDetectController.java 68 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650
  1. package com.iamberry.rst.controllers.cm;
  2. import com.iamberry.rst.core.cm.CompanyInfo;
  3. import com.iamberry.rst.core.cm.ComplaintQuestionInfo;
  4. import com.iamberry.rst.core.cm.ProcType;
  5. import com.iamberry.rst.core.cm.SalesOrder;
  6. import com.iamberry.rst.core.fm.*;
  7. import com.iamberry.rst.core.order.Product;
  8. import com.iamberry.rst.core.order.ProductColor;
  9. import com.iamberry.rst.core.order.ProductType;
  10. import com.iamberry.rst.core.page.PageRequest;
  11. import com.iamberry.rst.core.page.PagedResult;
  12. import com.iamberry.rst.core.sys.Admin;
  13. import com.iamberry.rst.core.tools.LogisticsInfo;
  14. import com.iamberry.rst.faces.cm.CompanyInfoService;
  15. import com.iamberry.rst.faces.cm.ProcTypeService;
  16. import com.iamberry.rst.faces.cm.SalesOrderService;
  17. import com.iamberry.rst.faces.fm.*;
  18. import com.iamberry.rst.faces.product.ProductService;
  19. import com.iamberry.rst.service.cm.mapper.ComplaintQuestionInfoMapper;
  20. import com.iamberry.rst.service.sys.mapper.SysMapper;
  21. import com.iamberry.rst.utils.AdminUtils;
  22. import com.iamberry.rst.util.GenerateKeyUtil;
  23. import com.iamberry.rst.utils.StaticModelUtil;
  24. import com.iamberry.rst.utils.StitchAttrUtil;
  25. import com.iamberry.wechat.tools.ResponseJson;
  26. import com.iamberry.wechat.tools.StrUtils;
  27. import org.apache.poi.hssf.usermodel.*;
  28. import org.apache.poi.ss.usermodel.HorizontalAlignment;
  29. import org.apache.shiro.authz.annotation.RequiresPermissions;
  30. import org.springframework.beans.factory.annotation.Autowired;
  31. import org.springframework.stereotype.Controller;
  32. import org.springframework.web.bind.annotation.RequestMapping;
  33. import org.springframework.web.bind.annotation.RequestParam;
  34. import org.springframework.web.bind.annotation.ResponseBody;
  35. import org.springframework.web.servlet.ModelAndView;
  36. import javax.servlet.ServletOutputStream;
  37. import javax.servlet.http.HttpServletRequest;
  38. import javax.servlet.http.HttpServletResponse;
  39. import java.io.*;
  40. import java.text.ParseException;
  41. import java.text.SimpleDateFormat;
  42. import java.util.*;
  43. /**
  44. * Created by wxm on 2017/8/29.
  45. */
  46. @Controller
  47. @RequestMapping("/admin/detect")
  48. public class AdminDetectController {
  49. // private
  50. @Autowired
  51. private ComplaintDetectInfoService complaintDetectInfoService;
  52. @Autowired
  53. private ProductService productService;
  54. @Autowired
  55. private ComplaintSignclosedInfoService complaintSignclosedInfoService;
  56. @Autowired
  57. private ComplaintSignclosedProductInfoService signclosedProductInfoService;
  58. @Autowired
  59. private AwaitingSignclosedProductInfoService awaitingSignclosedProductService;
  60. @Autowired
  61. private CompanyInfoService companyInfoService;
  62. @Autowired
  63. private SalesOrderService salesOrderService;
  64. @Autowired
  65. private GenerateKeyUtil generateKeyUtil;
  66. @Autowired
  67. private ComplaintQuestionInfoMapper complaintQuestionInfoMapper;
  68. @Autowired
  69. private SysMapper sysMapper;
  70. @Autowired
  71. private ProcTypeService procTypeService;
  72. @Autowired
  73. private DetectStatisticService detectStatisticService;
  74. /**
  75. * 跳转到添加检测记录页面
  76. *
  77. * @return
  78. */
  79. @RequiresPermissions("detect:add:detect")
  80. @RequestMapping(value = "/to_add_detect")
  81. public ModelAndView toAddDetect(HttpServletRequest request) {
  82. ModelAndView mv = new ModelAndView("cm/inspection/add_detect");
  83. Product product = new Product();
  84. List<Product> productList = productService.listProductAndColorAndfittings(product);
  85. ProductColor color = new ProductColor();
  86. color.setColorProductId(product.getProductId());
  87. List<ProductColor> productColorList = productService.listProduceColor(color);
  88. mv.addObject("productColorList",productColorList);
  89. mv.addObject("productList",productList);
  90. //获取所有维修内容
  91. DetectionBasis detectionBasis = new DetectionBasis();
  92. List<DetectionBasis> detectionBasisList = complaintDetectInfoService.listDetectionBasis(detectionBasis);
  93. //查询客诉问题
  94. ComplaintQuestionInfo complaintQuestionInfo = new ComplaintQuestionInfo();
  95. complaintQuestionInfo.setDetectComplaintType(1);
  96. List<ComplaintQuestionInfo> listComplaintQuestionInfo = complaintQuestionInfoMapper.listComplaintQuestionInfo(complaintQuestionInfo);
  97. //查询业务员
  98. Admin admin = new Admin();
  99. admin.setAdminDept(15);
  100. List<Admin> listAdmin = sysMapper.listAdmin(admin);
  101. mv.addObject("listAdmin",listAdmin);
  102. mv.addObject("listComplaintQuestionInfo",listComplaintQuestionInfo);
  103. mv.addObject("detectionBasisList",detectionBasisList);
  104. mv.addObject("companyInfoList",companyInfoService.listCompanyInfo(new CompanyInfo()));
  105. return mv;
  106. }
  107. /**
  108. * 客诉 - 查询品质检测列表
  109. * @param request
  110. * @return
  111. */
  112. @RequiresPermissions("detect:select:detect")
  113. @RequestMapping("/select_detect_list")
  114. public ModelAndView selectDetectList(HttpServletRequest request,
  115. @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
  116. @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
  117. @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum,
  118. ComplaintDetectInfo detect) throws ParseException {
  119. ModelAndView mv = new ModelAndView("cm/inspection/detect_list");
  120. detect.setDetectSource(1);
  121. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  122. // 封装请求数据
  123. PageRequest<ComplaintDetectInfo> pageRequest = new PageRequest<>(detect, pageNO, pageSize, totalNum == 0);
  124. // 查询订单列表
  125. PagedResult<ComplaintDetectInfo> result = complaintDetectInfoService.listComplaintDetect(pageRequest);
  126. if (totalNum != 0) {
  127. result.setTotal(totalNum);
  128. }
  129. //获取所有产品类型
  130. ProductType productType = new ProductType();
  131. List<ProductType> productTypeList = productService.listProductType(productType);
  132. mv.addObject("productTypeList",productTypeList);
  133. Product product = new Product();
  134. List<Product> productList = productService.listProductAndColorAndfittings(product);
  135. mv.addObject("productList",productList);
  136. //查询各个状态数量
  137. ComplaintAfterSalesNum complaintAfterSalesNum = complaintDetectInfoService.getDetectCount();
  138. mv.addObject("complaintAfterSalesNum",complaintAfterSalesNum);
  139. mv.addObject("util", StaticModelUtil.useStaticPacker(StrUtils.class.getName()));
  140. StitchAttrUtil.getSa().setModelAndView(detect, mv, "/admin/detect/select_detect_list", result);
  141. return mv;
  142. }
  143. /**
  144. * 添加检测信息
  145. * @param request
  146. * @return
  147. * @throws Exception
  148. */
  149. @ResponseBody
  150. @RequestMapping("/add_detect")
  151. @RequiresPermissions("detect:add:detect")
  152. public ResponseJson addDetect(HttpServletRequest request, ComplaintDetectInfo detectInfo) throws Exception {
  153. ResponseJson msg = new ResponseJson();
  154. if(detectInfo == null){
  155. msg.setResultCode(500);
  156. msg.setReturnCode(500);
  157. return msg;
  158. }
  159. /*String itemDate = request.getParameter("itemDate");
  160. if(itemDate == null ){
  161. msg.setResultCode(500);
  162. msg.setReturnCode(500);
  163. return msg;
  164. }*/
  165. //生成维修编号
  166. String number = generateKeyUtil.detectNumber();
  167. detectInfo.setDetectNumber(number);
  168. detectInfo.setDetectState(1);
  169. detectInfo.setIsMaintenance(0);
  170. detectInfo.setDetectRenovation(0);
  171. detectInfo.setDetectProcessingResults(0);
  172. Calendar date = Calendar.getInstance();
  173. date.setTime(new Date());
  174. boolean fl = false;
  175. for (int i = 1 ; i <= 3; i++){
  176. date.set(Calendar.DATE, date.get(Calendar.DATE) + i);
  177. int week = date.get(Calendar.DAY_OF_WEEK);//1--7的值,对应:星期日,星期一,星期二,星期三....星期六
  178. if(week == 1){
  179. fl = true;
  180. }
  181. date.set(Calendar.DATE, date.get(Calendar.DATE) - i);
  182. }
  183. if(fl){
  184. date.set(Calendar.DATE, date.get(Calendar.DATE) + 4);
  185. }else{
  186. date.set(Calendar.DATE, date.get(Calendar.DATE) + 3);
  187. }
  188. detectInfo.setMaintenanceCutTime(date.getTime());
  189. detectInfo.setDetectSource(2);
  190. if(complaintDetectInfoService.insert(detectInfo) > 0){
  191. msg.setResultCode(200);
  192. msg.setReturnCode(200);
  193. }else{
  194. msg.setResultCode(500);
  195. msg.setReturnCode(500);
  196. }
  197. return msg;
  198. }
  199. /**
  200. * 跳转到添加维修记录页面
  201. *
  202. * @return
  203. */
  204. @RequiresPermissions("info:update:info")
  205. @RequestMapping(value = "/to_add_content")
  206. public ModelAndView toAddContent(HttpServletRequest request) {
  207. ModelAndView mv = new ModelAndView("cm/inspection/add_content");
  208. String detectId = request.getParameter("detectId");
  209. if(detectId == null || detectId.equals("")){
  210. return mv;
  211. }
  212. ComplaintDetectInfo detectinfo = complaintDetectInfoService.getDetectById(Integer.valueOf(detectId));
  213. mv.addObject("detectId",detectId);
  214. mv.addObject("detectinfo",detectinfo);
  215. return mv;
  216. }
  217. /**
  218. * 跳转到修改QC检测结果页面
  219. *
  220. * @return
  221. */
  222. @RequiresPermissions("info:update:info")
  223. @RequestMapping(value = "/to_add_QC")
  224. public ModelAndView toAddQC(HttpServletRequest request) {
  225. ModelAndView mv = new ModelAndView("cm/inspection/add_QC");
  226. String detectId = request.getParameter("detectId");
  227. if(detectId == null || detectId.equals("")){
  228. return mv;
  229. }
  230. ComplaintDetectInfo detectinfo = complaintDetectInfoService.getDetectById(Integer.valueOf(detectId));
  231. mv.addObject("detectId",detectId);
  232. mv.addObject("detectinfo",detectinfo);
  233. return mv;
  234. }
  235. /**
  236. * 跳转到完成维修页面
  237. *
  238. * @return
  239. */
  240. @RequiresPermissions("info:update:info")
  241. @RequestMapping(value = "/to_complete")
  242. public ModelAndView toComplete(HttpServletRequest request) {
  243. ModelAndView mv = new ModelAndView("cm/inspection/complete_maintenance");
  244. String detectId = request.getParameter("detectId");
  245. String detectState = request.getParameter("detectState");
  246. if(detectId == null || detectId.equals("")){
  247. return mv;
  248. }if(detectState == null || detectState.equals("")){
  249. return mv;
  250. }
  251. ComplaintDetectInfo detectinfo = complaintDetectInfoService.getDetectById(Integer.valueOf(detectId));
  252. List<DetectionConfig> config2 = complaintDetectInfoService.listDetectionConfig(2);
  253. List<DetectionConfig> config3 = complaintDetectInfoService.listDetectionConfig(3);
  254. List<DetectionConfig> config4 = complaintDetectInfoService.listDetectionConfig(4);
  255. List<DetectionConfig> config5 = complaintDetectInfoService.listDetectionConfig(5);
  256. mv.addObject("config2",config2);
  257. mv.addObject("config3",config3);
  258. mv.addObject("config4",config4);
  259. mv.addObject("config5",config5);
  260. List<MaterialNumberInfo> listMaterial = complaintDetectInfoService.listMaterialNumber();
  261. mv.addObject("detectId",detectId);
  262. mv.addObject("detectState",detectState);
  263. mv.addObject("detectinfo",detectinfo);
  264. mv.addObject("listMaterial",listMaterial);
  265. return mv;
  266. }
  267. /**
  268. * 跳转到检测详情页面
  269. *
  270. * @return
  271. */
  272. @RequiresPermissions("info:update:info")
  273. @RequestMapping(value = "/to_detail")
  274. public ModelAndView toAddDetail(HttpServletRequest request) {
  275. ModelAndView mv = new ModelAndView("cm/inspection/detect_detail");
  276. String detectId = request.getParameter("detectId");
  277. if(detectId == null || detectId.equals("")){
  278. return mv;
  279. }
  280. ComplaintDetectInfo detectinfo = complaintDetectInfoService.getDetectById(Integer.valueOf(detectId));
  281. List<ComplaintDetectImg> imgList = complaintDetectInfoService.listDetectImg(Integer.valueOf(detectId));
  282. List<MaterialItem> listMaterialItem = complaintDetectInfoService.listMaterialItem(Integer.valueOf(detectId));
  283. List<QcInfo> listQcInfo = complaintDetectInfoService.listQcInfo(Integer.valueOf(detectId));
  284. List<TreatmentRecordLog> listTreatmentRecordLog = complaintDetectInfoService.listTreatmentRecordLog(Integer.valueOf(detectId));
  285. if(detectinfo.getSalesOrderId() != null){
  286. SalesOrder salesOrder = salesOrderService.getSalesOrderByOrderId(detectinfo.getSalesOrderId());
  287. mv.addObject("salesOrder",salesOrder);
  288. }
  289. DetectionItem detectionItem = new DetectionItem();
  290. detectionItem.setDetectId(Integer.valueOf(detectId));
  291. //查询检测现象
  292. detectionItem.setConfigType(1);
  293. mv.addObject("detectPhenomenonList",complaintDetectInfoService.listDetectionItem(detectionItem));
  294. //查询故障原因
  295. detectionItem.setConfigType(2);
  296. mv.addObject("detectFailureCauseList",complaintDetectInfoService.listDetectionItem(detectionItem));
  297. //查询判定结果
  298. detectionItem.setConfigType(3);
  299. mv.addObject("detectResultsList",complaintDetectInfoService.listDetectionItem(detectionItem));
  300. //查询故障指向
  301. detectionItem.setConfigType(4);
  302. mv.addObject("detectPointList",complaintDetectInfoService.listDetectionItem(detectionItem));
  303. //查询原因分析
  304. detectionItem.setConfigType(5);
  305. mv.addObject("detectNalysisList",complaintDetectInfoService.listDetectionItem(detectionItem));
  306. mv.addObject("listTreatmentRecordLog",listTreatmentRecordLog);
  307. mv.addObject("listQcInfo",listQcInfo);
  308. mv.addObject("listMaterialItem",listMaterialItem);
  309. mv.addObject("detectinfo",detectinfo);
  310. mv.addObject("imgList",imgList);
  311. mv.addObject("util", StaticModelUtil.useStaticPacker(StrUtils.class.getName()));
  312. return mv;
  313. }
  314. /**
  315. * 跳转到修改检测页面
  316. *
  317. * @return
  318. */
  319. @RequiresPermissions("info:update:info")
  320. @RequestMapping(value = "/to_update")
  321. public ModelAndView toupdate(HttpServletRequest request) {
  322. ModelAndView mv = new ModelAndView("cm/inspection/update_detect");
  323. String detectId = request.getParameter("detectId");
  324. if(detectId == null || detectId.equals("")){
  325. return mv;
  326. }
  327. ComplaintDetectInfo detectinfo = complaintDetectInfoService.getDetectById(Integer.valueOf(detectId));
  328. List<ComplaintDetectImg> imgList = complaintDetectInfoService.listDetectImg(Integer.valueOf(detectId));
  329. DetectionItem detectionItem = new DetectionItem();
  330. detectionItem.setDetectId(Integer.valueOf(detectId));
  331. //查询维修配置信息
  332. List<DetectionConfig> config1 = complaintDetectInfoService.listDetectionConfig(1);
  333. List<DetectionConfig> config2 = complaintDetectInfoService.listDetectionConfig(2);
  334. List<DetectionConfig> config3 = complaintDetectInfoService.listDetectionConfig(3);
  335. List<DetectionConfig> config4 = complaintDetectInfoService.listDetectionConfig(4);
  336. List<DetectionConfig> config5 = complaintDetectInfoService.listDetectionConfig(5);
  337. List<MaterialNumberInfo> listMaterial = complaintDetectInfoService.listMaterialNumber();
  338. mv.addObject("config1",config1);
  339. mv.addObject("config2",config2);
  340. mv.addObject("config3",config3);
  341. mv.addObject("config4",config4);
  342. mv.addObject("config5",config5);
  343. //查询检测现象
  344. detectionItem.setConfigType(1);
  345. mv.addObject("detectPhenomenonList",complaintDetectInfoService.listDetectionItem(detectionItem));
  346. //查询故障原因
  347. detectionItem.setConfigType(2);
  348. mv.addObject("detectFailureCauseList",complaintDetectInfoService.listDetectionItem(detectionItem));
  349. //查询判定结果
  350. detectionItem.setConfigType(3);
  351. mv.addObject("detectResultsList",complaintDetectInfoService.listDetectionItem(detectionItem));
  352. //查询故障指向
  353. detectionItem.setConfigType(4);
  354. mv.addObject("detectPointList",complaintDetectInfoService.listDetectionItem(detectionItem));
  355. //查询原因分析
  356. detectionItem.setConfigType(5);
  357. mv.addObject("detectNalysisList",complaintDetectInfoService.listDetectionItem(detectionItem));
  358. //查询维修配件
  359. mv.addObject("listMaterialItem",complaintDetectInfoService.listMaterialItem(Integer.valueOf(detectId)));
  360. mv.addObject("listMaterial",listMaterial);
  361. mv.addObject("detectInfo",detectinfo);
  362. mv.addObject("imgList",imgList);
  363. mv.addObject("phenomenonList", complaintDetectInfoService.listPhenomenon(0));
  364. return mv;
  365. }
  366. /**
  367. * 修改检测信息
  368. * @param request
  369. * @return
  370. * @throws Exception
  371. */
  372. @RequiresPermissions("info:update:info")
  373. @ResponseBody
  374. @RequestMapping("/update")
  375. public ResponseJson addRemark(HttpServletRequest request, ComplaintDetectInfo detectInfo) throws Exception {
  376. ResponseJson msg = new ResponseJson();
  377. if(detectInfo == null){
  378. msg.setResultCode(500);
  379. msg.setReturnCode(500);
  380. return msg;
  381. }
  382. if(detectInfo.getDetectId() == null){
  383. msg.setResultCode(500);
  384. msg.setReturnCode(500);
  385. return msg;
  386. }
  387. /*String[] componentsImgs = request.getParameterValues("componentsImg");*/
  388. String[] configli1 = request.getParameterValues("configli1");
  389. String[] configli2 = request.getParameterValues("configli2");
  390. String[] configli3 = request.getParameterValues("configli3");
  391. String[] configli4 = request.getParameterValues("configli4");
  392. String[] configli5 = request.getParameterValues("configli5");
  393. String[] configli6 = request.getParameterValues("configui6");
  394. detectInfo.setConfigli1(configli1);
  395. detectInfo.setConfigli2(configli2);
  396. detectInfo.setConfigli3(configli3);
  397. detectInfo.setConfigli4(configli4);
  398. detectInfo.setConfigli5(configli5);
  399. detectInfo.setConfigli6(configli6);
  400. Integer num = complaintDetectInfoService.updateDetectById(detectInfo);
  401. if (num < 1) {
  402. msg.setResultCode(500);
  403. msg.setReturnCode(500);
  404. } else {
  405. msg.setResultCode(200);
  406. msg.setReturnCode(200);
  407. }
  408. return msg;
  409. }
  410. /**
  411. * 修改qc检测信息
  412. * @param request
  413. * @return
  414. * @throws Exception
  415. */
  416. @RequiresPermissions("info:update:info")
  417. @ResponseBody
  418. @RequestMapping("/update_qc")
  419. public ResponseJson updateQC(HttpServletRequest request, ComplaintDetectInfo detectInfo) throws Exception {
  420. ResponseJson msg = new ResponseJson();
  421. if(detectInfo == null){
  422. msg.setResultCode(500);
  423. msg.setReturnCode(500);
  424. return msg;
  425. }
  426. if(detectInfo.getDetectId() == null){
  427. msg.setResultCode(500);
  428. msg.setReturnCode(500);
  429. return msg;
  430. }
  431. Integer num = 0;
  432. try {
  433. num = complaintDetectInfoService.updateDetectQc(detectInfo);
  434. }catch (Exception e){
  435. e.printStackTrace();
  436. }
  437. if (num < 1) {
  438. msg.setResultCode(500);
  439. msg.setReturnCode(500);
  440. } else {
  441. msg.setResultCode(200);
  442. msg.setReturnCode(200);
  443. }
  444. return msg;
  445. }
  446. /**
  447. * 修改维修内容
  448. * @param request
  449. * @return
  450. * @throws Exception
  451. */
  452. @RequiresPermissions("info:update:info")
  453. @ResponseBody
  454. @RequestMapping("/update_content")
  455. public ResponseJson update_content(HttpServletRequest request, ComplaintDetectInfo detectInfo) throws Exception {
  456. ResponseJson msg = new ResponseJson();
  457. if(detectInfo == null){
  458. msg.setResultCode(500);
  459. msg.setReturnCode(500);
  460. return msg;
  461. }
  462. if(detectInfo.getDetectId() == null){
  463. msg.setResultCode(500);
  464. msg.setReturnCode(500);
  465. return msg;
  466. }
  467. String[] configli6 = request.getParameterValues("configli6");
  468. String[] configli2 = request.getParameterValues("configli2");
  469. String[] configli3 = request.getParameterValues("configli3");
  470. String[] configli4 = request.getParameterValues("configli4");
  471. String[] configli5 = request.getParameterValues("configli5");
  472. detectInfo.setConfigli2(configli2);
  473. detectInfo.setConfigli3(configli3);
  474. detectInfo.setConfigli4(configli4);
  475. detectInfo.setConfigli5(configli5);
  476. detectInfo.setConfigli6(configli6);
  477. if(detectInfo.getDetectState() != null){
  478. if(detectInfo.getDetectState() == 32 || detectInfo.getDetectState() == 36 ){
  479. detectInfo.setMaintenanceCompletionTime(new Date());
  480. }
  481. if(detectInfo.getDetectState() == 21 ){
  482. detectInfo.setRenovationCompletionTime(new Date());
  483. }
  484. }
  485. Integer num = complaintDetectInfoService.updateDetectContent(detectInfo);
  486. if (num < 1) {
  487. msg.setResultCode(500);
  488. msg.setReturnCode(500);
  489. } else {
  490. msg.setResultCode(200);
  491. msg.setReturnCode(200);
  492. }
  493. return msg;
  494. }
  495. /**
  496. * 跳转到查看仓储进度页面
  497. *
  498. * @return
  499. */
  500. @RequiresPermissions("complete:update:complete")
  501. @RequestMapping(value = "/to_view_progress")
  502. public ModelAndView toViewProgress(HttpServletRequest request) {
  503. ModelAndView mv = new ModelAndView("cm/inspection/view_progress");
  504. String signclosedId = request.getParameter("signclosedId");
  505. if(signclosedId == null || signclosedId.equals("")){
  506. return mv;
  507. }
  508. if(Integer.valueOf(signclosedId) == 0){
  509. return mv;
  510. }
  511. List<SignclosedProductInfo> signclosedProductInfo = null;
  512. List<AwaitingSignclosedProductInfo> awaitingSignclosedProductInfo = null;
  513. ComplaintSignclosedInfo complaintSignclosedInfo = complaintSignclosedInfoService.getSignclosedById(Integer.valueOf(signclosedId));
  514. signclosedProductInfo = signclosedProductInfoService.listSignclosedById(complaintSignclosedInfo.getSignclosedId());
  515. mv.addObject("signclosedProductInfo",signclosedProductInfo);
  516. mv.addObject("signclosedInfo",complaintSignclosedInfo);
  517. mv.addObject("signclosedId",signclosedId);
  518. return mv;
  519. }
  520. /**
  521. * 跳转到查看物流信息页面
  522. *
  523. * @return
  524. */
  525. @RequestMapping(value = "/to_view_logistics")
  526. public ModelAndView toViewLogistics(HttpServletRequest request) {
  527. ModelAndView mv = new ModelAndView("cm/logistics/view_logistics");
  528. String billCode = request.getParameter("billCode");
  529. String billName = request.getParameter("billName");
  530. if(billCode == null || billCode.equals("") ||billName == null || billName.equals("")){
  531. return mv;
  532. }
  533. mv.addObject("billCode",billCode);
  534. mv.addObject("billName",billName);
  535. return mv;
  536. }
  537. /**
  538. * 跳转到修改检测完成信息页面
  539. *
  540. * @return
  541. */
  542. @RequiresPermissions("complete:update:complete")
  543. @RequestMapping(value = "/to_update_complete")
  544. public ModelAndView toUpdateComplete(HttpServletRequest request) {
  545. ModelAndView mv = new ModelAndView("cm/inspection/update_complete");
  546. String detectId = request.getParameter("detectId");
  547. if(detectId == null || detectId.equals("")){
  548. return mv;
  549. }
  550. ComplaintDetectInfo detectInfo = complaintDetectInfoService.getDetectById(Integer.valueOf(detectId));
  551. //查询维修配置信息
  552. List<DetectionConfig> config1 = complaintDetectInfoService.listDetectionConfig(1);
  553. mv.addObject("config1",config1);
  554. detectInfo.setDetectDate(new Date());
  555. mv.addObject("detectId",detectId);
  556. mv.addObject("detectInfo",detectInfo);
  557. mv.addObject("phenomenonList", complaintDetectInfoService.listPhenomenon(0));
  558. return mv;
  559. }
  560. /**
  561. * 查询单个检测信息
  562. *
  563. * @return
  564. */
  565. @RequiresPermissions("complete:update:complete")
  566. @ResponseBody
  567. @RequestMapping(value = "/get_detect")
  568. public ResponseJson getDetect(HttpServletRequest request,Integer detectId) {
  569. ResponseJson msg = new ResponseJson();
  570. if(detectId == null){
  571. msg.setResultCode(500);
  572. msg.setReturnCode(500);
  573. return msg;
  574. }
  575. ComplaintDetectInfo detectInfo = complaintDetectInfoService.getDetectById(detectId);
  576. if(detectInfo == null){
  577. msg.setResultCode(500);
  578. msg.setReturnCode(500);
  579. return msg;
  580. }else {
  581. List<ComplaintDetectImg> detectImg = complaintDetectInfoService.listDetectImg(detectId);
  582. ComplaintSignclosedInfo signclosedInfo = complaintSignclosedInfoService.getSignclosedById(detectInfo.getSignclosedId());
  583. LogisticsInfo info = new LogisticsInfo();
  584. if(signclosedInfo != null){
  585. info.setLogisticsRstCode(signclosedInfo.getSignclosedLogistics());
  586. List<LogisticsInfo> logisticsInfos = salesOrderService.getLogisticsInfo(info);
  587. if(logisticsInfos != null && logisticsInfos.size() > 0){
  588. signclosedInfo.setSignclosedLogisticsName(logisticsInfos.get(0).getLogisticsName());
  589. }else{
  590. signclosedInfo.setSignclosedLogisticsName("其它快递");
  591. }
  592. }
  593. Admin admin = AdminUtils.getLoginAdmin();
  594. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  595. msg.addResponseKeyValue("detectImg",detectImg);
  596. msg.addResponseKeyValue("detectInfo",detectInfo);
  597. msg.addResponseKeyValue("signclosedInfo",signclosedInfo);
  598. msg.addResponseKeyValue("date",sdf.format(new Date()));//当前时间
  599. msg.addResponseKeyValue("adminName",admin.getAdminName());//当前登录人
  600. msg.setResultCode(200);
  601. msg.setReturnCode(200);
  602. return msg;
  603. }
  604. }
  605. /**
  606. * 跳转到查看客服录入客诉信息页面
  607. *
  608. * @return
  609. */
  610. @RequiresPermissions("complete:select:complete")
  611. @RequestMapping(value = "/to_customer_detail")
  612. public ModelAndView toCustomerDetail(HttpServletRequest request) {
  613. ModelAndView mv = new ModelAndView("cm/inspection/customer_detail");
  614. return mv;
  615. }
  616. /**
  617. * 检测完成
  618. * @param request
  619. * @return
  620. * @throws Exception
  621. */
  622. @RequiresPermissions("complete:update:complete")
  623. @ResponseBody
  624. @RequestMapping("/update_complete")
  625. public ResponseJson updateComplete(HttpServletRequest request, ComplaintDetectInfo detectInfo) throws Exception {
  626. ResponseJson msg = new ResponseJson();
  627. if(detectInfo == null){
  628. msg.setResultCode(500);
  629. msg.setReturnCode(500);
  630. return msg;
  631. }
  632. if(detectInfo.getDetectId() == null || "".equals(detectInfo.getDetectId())){
  633. msg.setResultCode(500);
  634. msg.setReturnCode(500);
  635. return msg;
  636. }
  637. String detectDate = request.getParameter("detect_date");
  638. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  639. if(detectDate != null){
  640. detectInfo.setDetectDate(format.parse(detectDate));
  641. }
  642. String[] componentsImgs = request.getParameterValues("componentsImg");
  643. String[] configli1 = request.getParameterValues("configli1");
  644. detectInfo.setConfigli1(configli1);
  645. Integer num = complaintDetectInfoService.updateDetectById(detectInfo,componentsImgs);
  646. if (num < 1) {
  647. msg.setResultCode(500);
  648. msg.setReturnCode(500);
  649. } else {
  650. msg.setResultCode(200);
  651. msg.setReturnCode(200);
  652. }
  653. return msg;
  654. }
  655. /**
  656. * 删除检测信息
  657. * @param request
  658. * @return
  659. * @throws Exception
  660. */
  661. @RequiresPermissions("remark:add:remark")
  662. @ResponseBody
  663. @RequestMapping("/delete")
  664. public ResponseJson delete(HttpServletRequest request, Integer detectId) throws Exception {
  665. ResponseJson msg = new ResponseJson();
  666. if(detectId == null){
  667. msg.setResultCode(500);
  668. msg.setReturnCode(500);
  669. return msg;
  670. }
  671. Integer num = complaintDetectInfoService.deleteDetect(detectId);
  672. if (num < 1) {
  673. msg.setResultCode(500);
  674. msg.setReturnCode(500);
  675. } else {
  676. msg.setResultCode(200);
  677. msg.setReturnCode(200);
  678. }
  679. return msg;
  680. }
  681. /**
  682. * 查询单个检测信息
  683. * @param request
  684. * @return
  685. * @throws Exception
  686. */
  687. @RequiresPermissions("remark:add:remark")
  688. @ResponseBody
  689. @RequestMapping("/getDetectionBasis")
  690. public ResponseJson getDetectionBasis(HttpServletRequest request, Integer basisId) throws Exception {
  691. ResponseJson msg = new ResponseJson();
  692. if(basisId == null){
  693. msg.setResultCode(500);
  694. msg.setReturnCode(500);
  695. return msg;
  696. }
  697. DetectionBasis detectionBasis = new DetectionBasis();
  698. detectionBasis.setBasisId(basisId);
  699. List<DetectionBasis> listDetectionBasis = complaintDetectInfoService.listDetectionBasis(detectionBasis);
  700. if (listDetectionBasis.size() < 1) {
  701. msg.setResultCode(500);
  702. msg.setReturnCode(500);
  703. } else {
  704. msg.addResponseKeyValue("detectionBasis",listDetectionBasis.get(0));
  705. msg.setResultCode(200);
  706. msg.setReturnCode(200);
  707. }
  708. return msg;
  709. }
  710. /**
  711. * 客服确认处理结果
  712. * @param request
  713. * @return
  714. * @throws Exception
  715. */
  716. @RequiresPermissions("complete:update:complete")
  717. @ResponseBody
  718. @RequestMapping("/customer_confirm")
  719. public ResponseJson customerConfirm(HttpServletRequest request, ComplaintDetectInfo detectInfo) throws Exception {
  720. ResponseJson msg = new ResponseJson();
  721. if(detectInfo == null){
  722. msg.setResultCode(500);
  723. msg.setReturnCode(500);
  724. return msg;
  725. }
  726. if(detectInfo.getDetectId() == null || "".equals(detectInfo.getDetectId())){
  727. msg.setResultCode(500);
  728. msg.setReturnCode(500);
  729. return msg;
  730. }
  731. Admin admin = AdminUtils.getLoginAdmin();
  732. if (!complaintDetectInfoService.customerConfirm(detectInfo,admin)) {
  733. msg.setResultCode(500);
  734. msg.setReturnCode(500);
  735. } else {
  736. ComplaintDetectInfo info = complaintDetectInfoService.getDetectById(detectInfo.getDetectId());
  737. msg.setResultCode(200);
  738. msg.setReturnCode(200);
  739. msg.addResponseKeyValue("detectInfo",info);
  740. }
  741. return msg;
  742. }
  743. /**
  744. * 查询维修信息条数
  745. * @param request
  746. * @param res
  747. * @param detectInfo
  748. * @throws Exception
  749. */
  750. @ResponseBody
  751. @RequiresPermissions("detect:select:detect")
  752. @RequestMapping("/detect_excel_num")
  753. public ResponseJson salesOrderExcelNum(HttpServletRequest request,HttpServletResponse res
  754. , ComplaintDetectInfo detectInfo) throws Exception{
  755. ResponseJson msg = new ResponseJson();
  756. //根据条件查询维修数据
  757. List<ComplaintDetectInfo> detectList = complaintDetectInfoService.listComplaintDetect(detectInfo);
  758. if (detectList == null || detectList.size() == 0) {
  759. msg.setResultCode(500);
  760. msg.setReturnCode(500);
  761. return msg;
  762. }
  763. msg.setResultCode(200);
  764. msg.setReturnCode(200);
  765. return msg;
  766. }
  767. /**
  768. * 导出维修信息
  769. * @param request
  770. * @param res
  771. * @param detectInfo
  772. * @throws Exception
  773. */
  774. @RequiresPermissions("detect:select:detect")
  775. @RequestMapping("/detect_excel")
  776. public void salesOrderExcel(HttpServletRequest request,HttpServletResponse res
  777. , ComplaintDetectInfo detectInfo) throws Exception{
  778. //根据id查询订单数据
  779. List<ComplaintDetectInfo> detectList = complaintDetectInfoService.listComplaintDetect(detectInfo);
  780. /*if (detectList == null || detectList.size() == 0) {
  781. return;
  782. }*/
  783. String[] cells = {
  784. "维修编号","快递单号","产品名称","颜色","生产月份","机身条码","是否少件",
  785. "退货地区","返厂日期","购买日期","确认日期","客诉日期","客诉类型",
  786. "客诉问题","售后原因","售后处理类型","工厂检测现象","是否翻新机",
  787. "故障原因","判断结果","故障指向","原因分析",
  788. "维修内容","厚膜类型","浮子类型","版本号"
  789. };
  790. exportExcel(request,res,cells,detectList);
  791. }
  792. /**
  793. * 导出订单Excel并下载
  794. * @param request
  795. * @param res
  796. * @param cells
  797. * @param detectList
  798. * @throws Exception
  799. */
  800. public void exportExcel(HttpServletRequest request,HttpServletResponse res,
  801. String[] cells,List<ComplaintDetectInfo> detectList) throws Exception {
  802. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  803. //创建一个workbook,对应一个Excel文件
  804. HSSFWorkbook wb = new HSSFWorkbook();
  805. //在workbook中添加一个sheet,对应Excel中的一个sheet
  806. HSSFSheet sheet = wb.createSheet("导出维修");
  807. //在sheet中添加表头第0行,老版本poi对excel行数列数有限制short
  808. HSSFRow row = sheet.createRow((int) 0);
  809. //创建单元格,设置值表头,设置表头居中
  810. HSSFCellStyle style = wb.createCellStyle();
  811. //居中格式
  812. style.setAlignment(HorizontalAlignment.CENTER);
  813. //设置表头
  814. if (cells == null || cells.length == 0) {
  815. return;
  816. }
  817. //循环设置表头
  818. HSSFCell cell = null;
  819. for (int i = 0;i < cells.length;i++) {
  820. String name = cells[i];
  821. cell = row.createCell(i);
  822. cell.setCellValue(name);
  823. cell.setCellStyle(style);
  824. }
  825. for (int i = 0; i < detectList.size(); i++) {
  826. row = sheet.createRow((int) i + 1);
  827. ComplaintDetectInfo detect = detectList.get(i);
  828. String detectFilmType = "";
  829. if(detect.getDetectFilmType() != null){
  830. switch (detect.getDetectFilmType()) {
  831. case 1:detectFilmType = "圆";break;
  832. case 2:detectFilmType = "扁";break;
  833. }
  834. }
  835. String detectIsRefurbishing = "";
  836. if(detect.getDetectIsRefurbishing() != null){
  837. switch (detect.getDetectIsRefurbishing()) {
  838. case 1:detectIsRefurbishing = "是";break;
  839. case 2:detectIsRefurbishing = "否";break;
  840. }
  841. }
  842. String detectFloatType = "";
  843. if(detect.getDetectFloatType() != null){
  844. switch (detect.getDetectFloatType()) {
  845. case 1:detectFloatType = "长";break;
  846. case 2:detectFloatType = "短";break;
  847. }
  848. }
  849. String signclosedIsWhetherLess = "";
  850. if(detect.getSignclosedIsWhetherLess() != null){
  851. switch (detect.getSignclosedIsWhetherLess()) {
  852. case 1:signclosedIsWhetherLess = "是";break;
  853. case 2:signclosedIsWhetherLess = "否";break;
  854. }
  855. }
  856. // 创建单元格,设置值
  857. row.createCell(0).setCellValue(detect.getDetectNumber()==null?"":detect.getDetectNumber());
  858. row.createCell(1).setCellValue(detect.getLogisticsNumber()==null?"":detect.getLogisticsNumber());
  859. row.createCell(2).setCellValue(detect.getProductName()==null?"":detect.getProductName());
  860. row.createCell(3).setCellValue(detect.getColorName()==null?"":detect.getColorName());
  861. row.createCell(4).setCellValue(detect.getDetectProduction()==null?"":detect.getDetectProduction());
  862. row.createCell(5).setCellValue(detect.getDetectFuselageBarcode()==null?"":detect.getDetectFuselageBarcode());
  863. row.createCell(6).setCellValue(signclosedIsWhetherLess);
  864. StringBuffer area = new StringBuffer(" ");
  865. if(detect.getSignclosedAddrProvincesName() == null || detect.getSignclosedAddrProvincesName().equals("")){
  866. area.append("");
  867. }else{
  868. area.append(detect.getSignclosedAddrProvincesName());
  869. }
  870. if(detect.getSignclosedAddrProvincesName() == null || detect.getSignclosedAddrProvincesName().equals("")){
  871. area.append("");
  872. }else{
  873. area.append("-"+detect.getSignclosedAddrProvincesName());
  874. }
  875. if(detect.getSignclosedAddrCityName() == null || detect.getSignclosedAddrCityName().equals("")){
  876. area.append("");
  877. }else{
  878. area.append("-"+detect.getSignclosedAddrCityName());
  879. }
  880. row.createCell(7).setCellValue(area.toString());
  881. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  882. if(detect.getSignclosedDate()==null){
  883. row.createCell(8).setCellValue( "");
  884. }else{
  885. row.createCell(8).setCellValue(sdf.format(detect.getSignclosedDate()));
  886. }
  887. if(detect.getDetectBuytime()!=null){
  888. row.createCell(9).setCellValue(sdf.format(detect.getDetectBuytime()));
  889. }else if(detect.getSalesTime()!=null){
  890. row.createCell(9).setCellValue(sdf.format(detect.getSalesTime()));
  891. }
  892. if(detect.getDetectConfirmTime()!=null){
  893. row.createCell(10).setCellValue(sdf.format(detect.getDetectConfirmTime()));
  894. }else if(detect.getCustomerCreateTime()!=null){
  895. row.createCell(10).setCellValue(sdf.format(detect.getCustomerCreateTime()));
  896. }
  897. if(detect.getCustomerCreateTime()==null){
  898. row.createCell(11).setCellValue("");
  899. }else{
  900. row.createCell(11).setCellValue(sdf.format(detect.getCustomerCreateTime()));
  901. }
  902. if(detect.getProcTypeName()!=null){
  903. row.createCell(12).setCellValue(detect.getProcTypeName());
  904. }else if(detect.getTypeName()!=null){
  905. row.createCell(12).setCellValue(detect.getTypeName());
  906. }else{
  907. row.createCell(12).setCellValue("");
  908. }
  909. if(detect.getQuestionTitle()!=null){
  910. row.createCell(13).setCellValue(detect.getQuestionTitle());
  911. }else if(detect.getQuestionName()!=null){
  912. row.createCell(13).setCellValue(detect.getQuestionName());
  913. }else{
  914. row.createCell(13).setCellValue("");
  915. }
  916. if(detect.getDescribeHandleDesc()!=null){
  917. row.createCell(14).setCellValue(detect.getDescribeHandleDesc());
  918. }else if(detect.getQuestionDescription()!=null){
  919. row.createCell(14).setCellValue(detect.getQuestionDescription());
  920. }else{
  921. row.createCell(14).setCellValue("");
  922. }
  923. if(detect.getProcMethodName()!=null){
  924. row.createCell(15).setCellValue(detect.getProcMethodName());
  925. }else if(detect.getMethodName()!=null){
  926. row.createCell(15).setCellValue(detect.getMethodName());
  927. }else{
  928. row.createCell(15).setCellValue("");
  929. }
  930. row.createCell(16).setCellValue(detect.getDetectPhenomenon()==null?"":detect.getDetectPhenomenon());
  931. row.createCell(17).setCellValue(detectIsRefurbishing);
  932. row.createCell(18).setCellValue(detect.getDetectFailureCause()==null?"":detect.getDetectFailureCause());
  933. row.createCell(19).setCellValue(detect.getDetectResults()==null?"":detect.getDetectResults());
  934. row.createCell(20).setCellValue(detect.getDetectPoint()==null?"":detect.getDetectPoint());
  935. row.createCell(21).setCellValue(detect.getDetectNalysis()==null?"":detect.getDetectNalysis());
  936. row.createCell(22).setCellValue(detect.getDetectContent()==null?"":detect.getDetectContent());
  937. row.createCell(23).setCellValue(detectFilmType);
  938. row.createCell(24).setCellValue(detectFloatType);
  939. row.createCell(25).setCellValue(detect.getDetectVersionNumber()==null?"":detect.getDetectVersionNumber());
  940. }
  941. //下载导出订单Excel
  942. downloadOrderExcel(res,wb);
  943. }
  944. /**
  945. * 下载导出订单Excel
  946. * @param res
  947. * @param wb
  948. * @throws Exception
  949. */
  950. public void downloadOrderExcel(HttpServletResponse res, HSSFWorkbook wb) throws Exception{
  951. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  952. String fileName = format.format(new Date()) + "维修报表";
  953. ByteArrayOutputStream os = new ByteArrayOutputStream();
  954. wb.write(os);
  955. byte[] content = os.toByteArray();
  956. InputStream is = new ByteArrayInputStream(content);
  957. // 设置response参数,可以打开下载页面
  958. res.reset();
  959. res.setContentType("application/vnd.ms-excel;charset=utf-8");
  960. res.setHeader("Content-Disposition", "attachment;filename="
  961. + new String((fileName + ".xls").getBytes(), "iso-8859-1"));
  962. ServletOutputStream out = res.getOutputStream();
  963. BufferedInputStream bis = null;
  964. BufferedOutputStream bos = null;
  965. try {
  966. bis = new BufferedInputStream(is);
  967. bos = new BufferedOutputStream(out);
  968. byte[] buff = new byte[2048];
  969. int bytesRead;
  970. // Simple read/write loop.
  971. while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
  972. bos.write(buff, 0, bytesRead);
  973. }
  974. } catch (Exception e) {
  975. // TODO: handle exception
  976. e.printStackTrace();
  977. } finally {
  978. if (bis != null)
  979. bis.close();
  980. if (bos != null)
  981. bos.close();
  982. }
  983. }
  984. /**
  985. * 进入导出每日检测页面
  986. */
  987. @RequestMapping(value = "/to_download_detection")
  988. public ModelAndView toDownloadDetection(HttpServletRequest request) {
  989. ModelAndView mv = new ModelAndView("cm/inspection/download_detection");
  990. return mv;
  991. }
  992. /**
  993. * 导出维修信息
  994. * @param request
  995. * @param res
  996. * @param detectInfo
  997. * @throws Exception
  998. */
  999. @RequestMapping("/download_detection")
  1000. public void downloadDetection(HttpServletRequest request,HttpServletResponse res
  1001. , ComplaintDetectInfo detectInfo) throws Exception{
  1002. //根据id查询订单数据
  1003. if((detectInfo.getStartTime() == null || detectInfo.getStartTime().equals("")) && (detectInfo.getEndTime() == null || detectInfo.getEndTime().equals(""))){
  1004. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  1005. Calendar date = Calendar.getInstance();
  1006. date.setTime(new Date());
  1007. detectInfo.setTodayTime(sdf.format(date.getTime()));
  1008. }
  1009. List<ComplaintDetectInfo> detectList = complaintDetectInfoService.listComplaintDetect(detectInfo);
  1010. /*if (detectList == null || detectList.size() == 0) {
  1011. return;
  1012. }*/
  1013. String[] cells = {
  1014. "维修编号","快递单号","产品简称","产品颜色","生产月份","机身条码","是否少件",
  1015. "退货地区","返厂日期","确认日期","售后处理类型","工厂检测现象","是否翻新机","厚膜类型","浮子类型","版本号","检测日期"
  1016. };
  1017. exportExcel2(request,res,cells,detectList);
  1018. }
  1019. /**
  1020. * 导出订单Excel并下载
  1021. * @param request
  1022. * @param res
  1023. * @param cells
  1024. * @param detectList
  1025. * @throws Exception
  1026. */
  1027. public void exportExcel2(HttpServletRequest request,HttpServletResponse res,
  1028. String[] cells,List<ComplaintDetectInfo> detectList) throws Exception {
  1029. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  1030. //创建一个workbook,对应一个Excel文件
  1031. HSSFWorkbook wb = new HSSFWorkbook();
  1032. //在workbook中添加一个sheet,对应Excel中的一个sheet
  1033. HSSFSheet sheet = wb.createSheet("导出维修");
  1034. //在sheet中添加表头第0行,老版本poi对excel行数列数有限制short
  1035. HSSFRow row = sheet.createRow((int) 0);
  1036. //创建单元格,设置值表头,设置表头居中
  1037. HSSFCellStyle style = wb.createCellStyle();
  1038. //居中格式
  1039. style.setAlignment(HorizontalAlignment.CENTER);
  1040. //设置表头
  1041. if (cells == null || cells.length == 0) {
  1042. return;
  1043. }
  1044. //循环设置表头
  1045. HSSFCell cell = null;
  1046. for (int i = 0;i < cells.length;i++) {
  1047. String name = cells[i];
  1048. cell = row.createCell(i);
  1049. cell.setCellValue(name);
  1050. cell.setCellStyle(style);
  1051. }
  1052. for (int i = 0; i < detectList.size(); i++) {
  1053. row = sheet.createRow((int) i + 1);
  1054. ComplaintDetectInfo detect = detectList.get(i);
  1055. String detectFilmType = "";
  1056. if(detect.getDetectFilmType() != null){
  1057. switch (detect.getDetectFilmType()) {
  1058. case 1:detectFilmType = "圆";break;
  1059. case 2:detectFilmType = "扁";break;
  1060. }
  1061. }
  1062. String detectIsRefurbishing = "";
  1063. if(detect.getDetectIsRefurbishing() != null){
  1064. switch (detect.getDetectIsRefurbishing()) {
  1065. case 1:detectIsRefurbishing = "是";break;
  1066. case 2:detectIsRefurbishing = "否";break;
  1067. }
  1068. }
  1069. String detectFloatType = "";
  1070. if(detect.getDetectFloatType() != null){
  1071. switch (detect.getDetectFloatType()) {
  1072. case 1:detectFloatType = "长";break;
  1073. case 2:detectFloatType = "短";break;
  1074. }
  1075. }
  1076. String signclosedIsWhetherLess = "";
  1077. if(detect.getSignclosedIsWhetherLess() != null){
  1078. switch (detect.getSignclosedIsWhetherLess()) {
  1079. case 1:signclosedIsWhetherLess = "是";break;
  1080. case 2:signclosedIsWhetherLess = "否";break;
  1081. }
  1082. }
  1083. // 创建单元格,设置值
  1084. row.createCell(0).setCellValue(detect.getDetectNumber()==null?"":detect.getDetectNumber());
  1085. row.createCell(1).setCellValue(detect.getLogisticsNumber()==null?"":detect.getLogisticsNumber());
  1086. row.createCell(2).setCellValue(detect.getProductAbbreviation()==null?"":detect.getProductAbbreviation());
  1087. row.createCell(3).setCellValue(detect.getColorName()==null?"":detect.getColorName());
  1088. row.createCell(4).setCellValue(detect.getDetectProduction()==null?"":detect.getDetectProduction());
  1089. row.createCell(5).setCellValue(detect.getDetectFuselageBarcode()==null?"":detect.getDetectFuselageBarcode());
  1090. row.createCell(6).setCellValue(signclosedIsWhetherLess);
  1091. StringBuffer area = new StringBuffer(" ");
  1092. if(detect.getSignclosedAddrProvincesName() == null || detect.getSignclosedAddrProvincesName().equals("")){
  1093. area.append("");
  1094. }else{
  1095. area.append(detect.getSignclosedAddrProvincesName());
  1096. }
  1097. if(detect.getSignclosedAddrCityName() == null || detect.getSignclosedAddrCityName().equals("")){
  1098. area.append("");
  1099. }else{
  1100. area.append("-"+detect.getSignclosedAddrCityName());
  1101. }
  1102. row.createCell(7).setCellValue(area.toString());
  1103. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  1104. if(detect.getSignclosedDate()==null){
  1105. row.createCell(8).setCellValue( "");
  1106. }else{
  1107. row.createCell(8).setCellValue(sdf.format(detect.getSignclosedDate()));
  1108. }
  1109. /*row.createCell(9).setCellValue(detect.getProcTypeName()==null?"":detect.getProcTypeName());*/
  1110. if(detect.getDetectConfirmTime()!=null){
  1111. row.createCell(9).setCellValue(sdf.format(detect.getDetectConfirmTime()));
  1112. }else if(detect.getCustomerCreateTime()!=null){
  1113. row.createCell(9).setCellValue(sdf.format(detect.getCustomerCreateTime()));
  1114. }
  1115. if(detect.getProcTypeName()!=null){
  1116. row.createCell(10).setCellValue(detect.getProcTypeName());
  1117. }else if(detect.getTypeName()!=null){
  1118. row.createCell(10).setCellValue(detect.getTypeName());
  1119. }else{
  1120. row.createCell(10).setCellValue("");
  1121. }
  1122. row.createCell(11).setCellValue(detect.getDetectPhenomenon()==null?"":detect.getDetectPhenomenon());
  1123. row.createCell(12).setCellValue(detectIsRefurbishing);
  1124. row.createCell(13).setCellValue(detectFilmType);
  1125. row.createCell(14).setCellValue(detectFloatType);
  1126. row.createCell(15).setCellValue(detect.getDetectVersionNumber()==null?"":detect.getDetectVersionNumber());
  1127. if(detect.getDetectPrintTime()==null){
  1128. row.createCell(16).setCellValue( "");
  1129. }else{
  1130. row.createCell(16).setCellValue(sdf.format(detect.getDetectPrintTime()));
  1131. }
  1132. if(detect.getDetectIsDownload() == 1){
  1133. //修改为已打印
  1134. ComplaintDetectInfo info = new ComplaintDetectInfo();
  1135. info.setDetectId(detect.getDetectId());
  1136. info.setDetectIsDownload(2);
  1137. complaintDetectInfoService.perfectDetect(info);
  1138. }
  1139. }
  1140. //下载导出订单Excel
  1141. downloadOrderExcel(res,wb);
  1142. }
  1143. /**
  1144. * 修改打印状态
  1145. *
  1146. * @return
  1147. */
  1148. @ResponseBody
  1149. @RequestMapping(value = "/update_print")
  1150. public ResponseJson updatePrint(HttpServletRequest request,ComplaintDetectInfo complaintDetectInfo){
  1151. ResponseJson msg = new ResponseJson();
  1152. if(complaintDetectInfo == null){
  1153. msg.setResultCode(500);
  1154. msg.setReturnCode(500);
  1155. return msg;
  1156. }
  1157. complaintDetectInfo.setDetectIsPrint(2);
  1158. complaintDetectInfo.setDetectPrintTime(new Date());
  1159. Integer num = complaintDetectInfoService.updatePrint(complaintDetectInfo);
  1160. if (num < 1) {
  1161. msg.setResultCode(500);
  1162. msg.setReturnCode(500);
  1163. } else {
  1164. msg.setResultCode(200);
  1165. msg.setReturnCode(200);
  1166. }
  1167. return msg;
  1168. }
  1169. /**
  1170. * 修改报废状态
  1171. *
  1172. * @return
  1173. */
  1174. @ResponseBody
  1175. @RequestMapping(value = "/update_scrap")
  1176. public ResponseJson updateScrap(HttpServletRequest request,ComplaintDetectInfo complaintDetectInfo){
  1177. ResponseJson msg = new ResponseJson();
  1178. if(complaintDetectInfo == null){
  1179. msg.setResultCode(500);
  1180. msg.setReturnCode(500);
  1181. return msg;
  1182. }
  1183. complaintDetectInfo.setScrapCompletionTime(new Date());
  1184. Integer num = complaintDetectInfoService.updatePrint(complaintDetectInfo);
  1185. if (num < 1) {
  1186. msg.setResultCode(500);
  1187. msg.setReturnCode(500);
  1188. } else {
  1189. msg.setResultCode(200);
  1190. msg.setReturnCode(200);
  1191. }
  1192. return msg;
  1193. }
  1194. /**
  1195. * 修改是否下单状态
  1196. *
  1197. * @return
  1198. */
  1199. /*@ResponseBody
  1200. @RequestMapping(value = "/update_placeorder")
  1201. public ResponseJson updatePlaceorder(HttpServletRequest request,ComplaintDetectInfo complaintDetectInfo){
  1202. ResponseJson msg = new ResponseJson();
  1203. if(complaintDetectInfo == null){
  1204. msg.setResultCode(500);
  1205. msg.setReturnCode(500);
  1206. return msg;
  1207. }
  1208. Integer num = complaintDetectInfoService.updatePrint(complaintDetectInfo);
  1209. if (num < 1) {
  1210. msg.setResultCode(500);
  1211. msg.setReturnCode(500);
  1212. } else {
  1213. msg.setResultCode(200);
  1214. msg.setReturnCode(200);
  1215. }
  1216. return msg;
  1217. }*/
  1218. /**
  1219. * 客诉 - 查询维修处理列表
  1220. * @param request
  1221. * @return
  1222. */
  1223. @RequiresPermissions("detect:Repair:detect")
  1224. @RequestMapping("/detect_repair_list")
  1225. public ModelAndView detectRepairList(HttpServletRequest request,
  1226. @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
  1227. @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
  1228. @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum,
  1229. ComplaintDetectInfo detect) throws ParseException {
  1230. ModelAndView mv = new ModelAndView("cm/inspection/detect_repair_list");
  1231. detect.setDetectSource(2);
  1232. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  1233. // 封装请求数据
  1234. PageRequest<ComplaintDetectInfo> pageRequest = new PageRequest<>(detect, pageNO, pageSize, totalNum == 0);
  1235. // 查询订单列表
  1236. PagedResult<ComplaintDetectInfo> result = complaintDetectInfoService.listComplaintDetect(pageRequest);
  1237. if (totalNum != 0) {
  1238. result.setTotal(totalNum);
  1239. }
  1240. //获取所有产品类型
  1241. ProductType productType = new ProductType();
  1242. List<ProductType> productTypeList = productService.listProductType(productType);
  1243. mv.addObject("productTypeList",productTypeList);
  1244. Product product = new Product();
  1245. List<Product> productList = productService.listProductAndColorAndfittings(product);
  1246. mv.addObject("productList",productList);
  1247. //查询业务员
  1248. Admin admin = new Admin();
  1249. admin.setAdminDept(15);
  1250. List<Admin> listAdmin = sysMapper.listAdmin(admin);
  1251. mv.addObject("listAdmin",listAdmin);
  1252. ProcType procType = new ProcType();
  1253. List<ProcType> procTypeList = new ArrayList<>();
  1254. procType.setProcTypeStatus(1);
  1255. procTypeList = procTypeService.getProcTypeList(procType);
  1256. mv.addObject("procTypeList",procTypeList);
  1257. StitchAttrUtil.getSa().setModelAndView(detect, mv, "/admin/detect/detect_repair_list", result);
  1258. return mv;
  1259. }
  1260. /**
  1261. * 跳转到完善客户信息页面
  1262. *
  1263. * @return
  1264. */
  1265. @RequiresPermissions("info:update:info")
  1266. @RequestMapping(value = "/to_perfect_detect")
  1267. public ModelAndView toPerfectDetect(HttpServletRequest request) {
  1268. ModelAndView mv = new ModelAndView("cm/inspection/perfect_detect");
  1269. String detectId = request.getParameter("detectId");
  1270. if(detectId == null || detectId.equals("")){
  1271. return mv;
  1272. }
  1273. ComplaintDetectInfo detectinfo = complaintDetectInfoService.getDetectById(Integer.valueOf(detectId));
  1274. Product product = new Product();
  1275. List<Product> productList = productService.listProductAndColorAndfittings(product);
  1276. ProductColor color = new ProductColor();
  1277. color.setColorProductId(detectinfo.getProductId());
  1278. List<ProductColor> productColorList = productService.listProduceColor(color);
  1279. mv.addObject("productColorList",productColorList);
  1280. mv.addObject("productList",productList);
  1281. //查询客诉问题
  1282. ComplaintQuestionInfo complaintQuestionInfo = new ComplaintQuestionInfo();
  1283. complaintQuestionInfo.setDetectComplaintType(1);
  1284. List<ComplaintQuestionInfo> listComplaintQuestionInfo = complaintQuestionInfoMapper.listComplaintQuestionInfo(complaintQuestionInfo);
  1285. //查询业务员
  1286. Admin admin = new Admin();
  1287. admin.setAdminDept(15);
  1288. List<Admin> listAdmin = sysMapper.listAdmin(admin);
  1289. List<CompanyInfo> companyInfoList = companyInfoService.listCompanyInfo(new CompanyInfo());
  1290. mv.addObject("companyInfoList",companyInfoList);
  1291. mv.addObject("listComplaintQuestionInfo",listComplaintQuestionInfo);
  1292. mv.addObject("listAdmin",listAdmin);
  1293. mv.addObject("detectId",detectId);
  1294. mv.addObject("detectinfo",detectinfo);
  1295. return mv;
  1296. }
  1297. /**
  1298. * 完善客户信息
  1299. * @param request
  1300. * @return
  1301. * @throws Exception
  1302. */
  1303. @RequiresPermissions("info:update:info")
  1304. @ResponseBody
  1305. @RequestMapping("/perfect_detect")
  1306. public ResponseJson perfectDetect(HttpServletRequest request, ComplaintDetectInfo detectInfo) throws Exception {
  1307. ResponseJson msg = new ResponseJson();
  1308. if(detectInfo == null){
  1309. msg.setResultCode(500);
  1310. msg.setReturnCode(500);
  1311. return msg;
  1312. }
  1313. if(detectInfo.getDetectId() == null){
  1314. msg.setResultCode(500);
  1315. msg.setReturnCode(500);
  1316. return msg;
  1317. }
  1318. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  1319. String detectConfirmTime = request.getParameter("detect_confirm_time");
  1320. if(detectConfirmTime != null){
  1321. detectInfo.setDetectConfirmTime(format.parse(detectConfirmTime));
  1322. }
  1323. String detectBuyTime = request.getParameter("detect_buy_time");
  1324. if(detectBuyTime != null){
  1325. detectInfo.setDetectBuytime(format.parse(detectBuyTime));
  1326. }
  1327. Calendar date = Calendar.getInstance();
  1328. date.setTime(new Date());
  1329. boolean fl = false;
  1330. for (int i = 1 ; i <= 3; i++){
  1331. date.set(Calendar.DATE, date.get(Calendar.DATE) + i);
  1332. int week = date.get(Calendar.DAY_OF_WEEK);//1--7的值,对应:星期日,星期一,星期二,星期三....星期六
  1333. if(week == 1){
  1334. fl = true;
  1335. }
  1336. date.set(Calendar.DATE, date.get(Calendar.DATE) - i);
  1337. }
  1338. if(fl){
  1339. date.set(Calendar.DATE, date.get(Calendar.DATE) + 4);
  1340. }else{
  1341. date.set(Calendar.DATE, date.get(Calendar.DATE) + 3);
  1342. }
  1343. detectInfo.setMaintenanceCutTime(date.getTime());
  1344. detectInfo.setDetectState(1);
  1345. Integer num = complaintDetectInfoService.perfectDetect(detectInfo);
  1346. if (num < 1) {
  1347. msg.setResultCode(500);
  1348. msg.setReturnCode(500);
  1349. } else {
  1350. msg.setResultCode(200);
  1351. msg.setReturnCode(200);
  1352. }
  1353. return msg;
  1354. }
  1355. /**
  1356. * 跳转到完善客户信息页面
  1357. *
  1358. * @return
  1359. */
  1360. @RequiresPermissions("info:update:info")
  1361. @RequestMapping(value = "/to_add_config")
  1362. public ModelAndView toAddConfig(HttpServletRequest request) {
  1363. ModelAndView mv = new ModelAndView("cm/inspection/add_config");
  1364. return mv;
  1365. }
  1366. /**
  1367. * 添加维修基础信息
  1368. * @param request
  1369. * @return
  1370. * @throws Exception
  1371. */
  1372. @RequiresPermissions("info:update:info")
  1373. @ResponseBody
  1374. @RequestMapping("/add_config")
  1375. public ResponseJson perfectDetect(HttpServletRequest request) throws Exception {
  1376. ResponseJson msg = new ResponseJson();
  1377. String type = request.getParameter("type");
  1378. String name = request.getParameter("name");
  1379. if(type == null || name == null){
  1380. msg.setResultCode(500);
  1381. msg.setReturnCode(500);
  1382. return msg;
  1383. }
  1384. int num = 0;
  1385. if(Integer.valueOf(type) == 6){
  1386. MaterialNumberInfo materialNumberInfo = new MaterialNumberInfo();
  1387. materialNumberInfo.setMaterialName(name);
  1388. materialNumberInfo.setMaterialType(1);
  1389. num = complaintDetectInfoService.addMaterial(materialNumberInfo);
  1390. }else{
  1391. DetectionConfig detectionConfig = new DetectionConfig();
  1392. detectionConfig.setConfigDetectContent(name);
  1393. detectionConfig.setConfigType(Integer.valueOf(type));
  1394. num = complaintDetectInfoService.addConfig(detectionConfig);
  1395. }
  1396. if (num < 1) {
  1397. msg.setResultCode(500);
  1398. msg.setReturnCode(500);
  1399. } else {
  1400. msg.setResultCode(200);
  1401. msg.setReturnCode(200);
  1402. }
  1403. return msg;
  1404. }
  1405. /**
  1406. * 跳转到统计页面
  1407. * @return
  1408. */
  1409. @RequiresPermissions("detect:statistics:detect")
  1410. @RequestMapping(value = "/detect_statistics")
  1411. public ModelAndView detectStatistics(HttpServletRequest request) {
  1412. ModelAndView mv = new ModelAndView("cm/inspection/detect_statistics");
  1413. //类型 检测类别1工厂检测现象2. 故障原因3. 判定结果4. 故障指向5. 原因分析
  1414. DetectionConfig detectionConfig = new DetectionConfig();
  1415. detectionConfig.setConfigType(3);
  1416. List<DetectionConfig> criticalResultList = detectStatisticService.getDetectConfigByTypeList(detectionConfig);
  1417. detectionConfig.setConfigType(2);
  1418. List<DetectionConfig> causeIssueList = detectStatisticService.getDetectConfigByTypeList(detectionConfig);
  1419. detectionConfig.setConfigType(5);
  1420. List<DetectionConfig> causeAnalysisList = detectStatisticService.getDetectConfigByTypeList(detectionConfig);
  1421. mv.addObject("criticalResultList",criticalResultList);
  1422. mv.addObject("causeIssueList",causeIssueList);
  1423. mv.addObject("causeAnalysisList",causeAnalysisList);
  1424. return mv;
  1425. }
  1426. /**
  1427. * 报表 - 本月故障机器
  1428. * @param request
  1429. * @return
  1430. * @throws Exception
  1431. */
  1432. @ResponseBody
  1433. @RequiresPermissions("detect:statistics:detect")
  1434. @RequestMapping("/detect_statistics_data")
  1435. public ResponseJson detectStatisticsData(HttpServletRequest request){
  1436. ResponseJson msg = ResponseJson.getSUCCESS();
  1437. List<ComplaintDetectInfo> complaintDetectInfoList = detectStatisticService.getAllMalfunctionByMonth();
  1438. msg.addResponseKeyValue("complaintDetectInfoList",complaintDetectInfoList);
  1439. return msg;
  1440. }
  1441. /**
  1442. * 报表 - 按照各个检测类型分类统计固定生产时间内,机器损坏数量
  1443. * @param request
  1444. * @return
  1445. * @throws Exception
  1446. */
  1447. @ResponseBody
  1448. @RequiresPermissions("detect:statistics:detect")
  1449. @RequestMapping("/detect_statistics_one")
  1450. public ResponseJson detectStatisticsOne(HttpServletRequest request, DetectStatistics detectStatistics){
  1451. ResponseJson msg = ResponseJson.getSUCCESS();
  1452. // detectStatistics.setBeginTime("2019-02");
  1453. //生产年份
  1454. List<DetectStatistics> detectProductionList = detectStatisticService.getDetectProductionList(detectStatistics);
  1455. //配置
  1456. List<DetectStatistics> detectConfigList = detectStatisticService.getDetectConfigList(detectStatistics);
  1457. List<Map> list = new ArrayList<>();
  1458. List<DetectStatistics> detectList = detectStatisticService.getDetectList(detectStatistics);
  1459. List<Integer> cinfigList = new ArrayList<>();
  1460. for (int i=0; i<detectConfigList.size(); i++) {
  1461. Map map = new HashMap();
  1462. int[] num = new int[detectProductionList.size()];
  1463. for (int k=0; k<detectProductionList.size(); k++){
  1464. boolean flag = false;
  1465. for (int j = 0; j <detectList.size() ; j++) {
  1466. if(detectProductionList.get(k).getDetectProduction().equals(detectList.get(j).getDetectProduction())
  1467. && Objects.equals(detectConfigList.get(i).getConfigId(), detectList.get(j).getConfigId())
  1468. ){
  1469. num[k] = detectList.get(j).getConfigNumber();
  1470. flag =true;
  1471. }
  1472. }
  1473. if(!flag){
  1474. num[k] = 0;
  1475. }
  1476. }
  1477. DetectStatistics detectConfig = detectConfigList.get(i);
  1478. map.put(detectConfig.getConfigDetectContent(),num);
  1479. list.add(map);
  1480. cinfigList.add(detectConfigList.get(i).getConfigId());
  1481. if(i >= 2){
  1482. break;
  1483. }
  1484. }
  1485. msg.addResponseKeyValue("detectConfigList",detectConfigList);
  1486. msg.addResponseKeyValue("detectProductionList",detectProductionList);
  1487. msg.addResponseKeyValue("list",list);
  1488. msg.addResponseKeyValue("cinfigList",cinfigList);
  1489. return msg;
  1490. }
  1491. /**
  1492. * 跳转到统计页面
  1493. * @return
  1494. */
  1495. @RequiresPermissions("detect:statistics:detect")
  1496. @RequestMapping(value = "/to_select_config_statistic")
  1497. public ModelAndView toSelectConfigStatistic(HttpServletRequest request,Integer configId) {
  1498. ModelAndView mv = new ModelAndView("cm/inspection/detect_statistics_config");
  1499. DetectionConfig detectionConfig = new DetectionConfig();
  1500. detectionConfig.setConfigId(configId);
  1501. List<DetectionConfig> configList = detectStatisticService.getDetectConfigByTypeList(detectionConfig);
  1502. detectionConfig = configList.get(0);
  1503. mv.addObject("detectionConfig",detectionConfig);
  1504. return mv;
  1505. }
  1506. /**
  1507. * 报表 - 按照各个检测类型分类统计固定生产时间内,机器损坏数量
  1508. * @param request
  1509. * @return
  1510. * @throws Exception
  1511. */
  1512. @ResponseBody
  1513. @RequiresPermissions("detect:statistics:detect")
  1514. @RequestMapping("/select_config_statistic")
  1515. public ResponseJson selectConfigStatistic(HttpServletRequest request,DetectStatistics detectStatistics){
  1516. ResponseJson msg = ResponseJson.getSUCCESS();
  1517. //生产年份
  1518. List<DetectStatistics> detectProductionList = detectStatisticService.getDetectProductionList(detectStatistics);
  1519. //所有的创建时间
  1520. List<DetectStatistics> creatTimeList = detectStatisticService.getCreatTimeByConfigIdList(detectStatistics);
  1521. //生产年份与创建时间的笛卡尔积的数量
  1522. List<DetectStatistics> detectAllList = detectStatisticService.getDetectAllByConfigIdList(detectStatistics);
  1523. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  1524. int[] allNum = new int[creatTimeList.size()];
  1525. for (int i = 0; i < allNum.length; i++) {
  1526. allNum[i] = 0;
  1527. }
  1528. List<Map> list = new ArrayList<>();
  1529. for (int i = 0; i < detectProductionList.size(); i++) {
  1530. Map map = new HashMap();
  1531. int[] num = new int[creatTimeList.size()];
  1532. for (int k = 0; k < creatTimeList.size(); k++) {
  1533. boolean flag = false;
  1534. String creatTime = sdf.format(creatTimeList.get(k).getDetectCreateTime());
  1535. for (int j = 0; j <detectAllList.size() ; j++) {
  1536. String dataCreatTime = sdf.format(detectAllList.get(j).getDetectCreateTime());
  1537. if( creatTime.equals(dataCreatTime)
  1538. && detectProductionList.get(i).getDetectProduction().equals(detectAllList.get(j).getDetectProduction())){
  1539. num[k] = detectAllList.get(j).getConfigNumber();
  1540. allNum[k] = allNum[k] + detectAllList.get(j).getConfigNumber();
  1541. flag = true;
  1542. }
  1543. }
  1544. if(!flag){
  1545. num[k] = 0;
  1546. }
  1547. }
  1548. map.put(detectProductionList.get(i).getDetectProduction(),num);
  1549. list.add(map);
  1550. }
  1551. Map map = new HashMap();
  1552. map.put("全部",allNum);
  1553. list.add(map);
  1554. msg.addResponseKeyValue("detectProductionList",detectProductionList);
  1555. msg.addResponseKeyValue("creatTimeList",creatTimeList);
  1556. msg.addResponseKeyValue("list",list);
  1557. return msg;
  1558. }
  1559. }