package com.iamberry.rst.controllers.cm; import com.iamberry.rst.core.cm.CompanyInfo; import com.iamberry.rst.core.fm.*; import com.iamberry.rst.core.order.Product; import com.iamberry.rst.core.order.ProductColor; import com.iamberry.rst.core.order.ProductType; import com.iamberry.rst.core.page.PageRequest; import com.iamberry.rst.core.page.PagedResult; import com.iamberry.rst.core.sys.Admin; import com.iamberry.rst.core.tools.LogisticsInfo; import com.iamberry.rst.faces.cm.CompanyInfoService; import com.iamberry.rst.faces.cm.SalesOrderService; import com.iamberry.rst.faces.fm.AwaitingSignclosedProductInfoService; import com.iamberry.rst.faces.fm.ComplaintDetectInfoService; import com.iamberry.rst.faces.fm.ComplaintSignclosedInfoService; import com.iamberry.rst.faces.fm.ComplaintSignclosedProductInfoService; import com.iamberry.rst.faces.product.ProductService; import com.iamberry.rst.service.fm.mapper.ComplaintSignclosedInfoMapper; import com.iamberry.rst.utils.AdminUtils; import com.iamberry.rst.utils.StitchAttrUtil; import com.iamberry.wechat.tools.ResponseJson; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; /** * Created by wxm on 2017/8/29. */ @Controller @RequestMapping("/admin/detect") public class AdminDetectController { // private @Autowired private ComplaintDetectInfoService complaintDetectInfoService; @Autowired private ProductService productService; @Autowired private ComplaintSignclosedInfoService complaintSignclosedInfoService; @Autowired private ComplaintSignclosedProductInfoService signclosedProductInfoService; @Autowired private AwaitingSignclosedProductInfoService awaitingSignclosedProductService; @Autowired private CompanyInfoService companyInfoService; @Autowired private SalesOrderService salesOrderService; /** * 跳转到添加检测记录页面 * * @return */ @RequiresPermissions("detect:add:detect") @RequestMapping(value = "/to_add_detect") public ModelAndView toAddDetect(HttpServletRequest request) { ModelAndView mv = new ModelAndView("cm/inspection/add_detect"); Product product = new Product(); List productList = productService.listProductAndColorAndfittings(product); ProductColor color = new ProductColor(); color.setColorProductId(product.getProductId()); List productColorList = productService.listProduceColor(color); mv.addObject("productColorList",productColorList); mv.addObject("productList",productList); //获取所有维修内容 DetectionBasis detectionBasis = new DetectionBasis(); List detectionBasisList = complaintDetectInfoService.listDetectionBasis(detectionBasis); mv.addObject("detectionBasisList",detectionBasisList); List companyInfoList = companyInfoService.listCompanyInfo(new CompanyInfo()); mv.addObject("companyInfoList",companyInfoList); return mv; } /** * 客诉 - 查询品质检测列表 * @param request * @return */ @RequiresPermissions("detect:select:detect") @RequestMapping("/select_detect_list") public ModelAndView selectDetectList(HttpServletRequest request, @RequestParam(value = "pageSize", defaultValue = "5", required = false) Integer pageSize, @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO, @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum, ComplaintDetectInfo detect) { ModelAndView mv = new ModelAndView("cm/inspection/detect_list"); // 封装请求数据 PageRequest pageRequest = new PageRequest<>(detect, pageNO, pageSize, totalNum == 0); // 查询订单列表 PagedResult result = complaintDetectInfoService.listComplaintDetect(pageRequest); if (totalNum != 0) { result.setTotal(totalNum); } Calendar date = Calendar.getInstance(); for (ComplaintDetectInfo info : result.getDataList()){ date.setTime(info.getDetectCreateTime()); date.set(Calendar.DATE, date.get(Calendar.DATE) + 6); info.setMaintenanceCutTime(date.getTime()); } //获取所有产品类型 ProductType productType = new ProductType(); List productTypeList = productService.listProductType(productType); mv.addObject("productTypeList",productTypeList); Product product = new Product(); List productList = productService.listProductAndColorAndfittings(product); mv.addObject("productList",productList); StitchAttrUtil.getSa().setModelAndView(detect, mv, "/admin/detect/select_detect_list", result); return mv; } /** * 添加检测信息 * @param request * @return * @throws Exception */ @RequiresPermissions("detect:add:detect") @ResponseBody @RequestMapping("/add_detect") public ResponseJson addDetect(HttpServletRequest request, ComplaintDetectInfo detectInfo) throws Exception { ResponseJson msg = new ResponseJson(); if(detectInfo == null){ msg.setResultCode(500); msg.setReturnCode(500); return msg; } /*String itemDate = request.getParameter("itemDate"); if(itemDate == null ){ msg.setResultCode(500); msg.setReturnCode(500); return msg; }*/ detectInfo.setDetectState(1); detectInfo.setIsMaintenance(0); detectInfo.setDetectRenovation(0); detectInfo.setDetectProcessingResults(0); if(complaintDetectInfoService.insert(detectInfo) > 0){ msg.setResultCode(200); msg.setReturnCode(200); }else{ msg.setResultCode(500); msg.setReturnCode(500); } return msg; } /** * 跳转到添加检测备注页面 * * @return */ /*@RequiresPermissions("info:update:info") @RequestMapping(value = "/to_add_remark") public ModelAndView toAddRemark(HttpServletRequest request) { ModelAndView mv = new ModelAndView("cm/inspection/add_remark"); String detectItemId = request.getParameter("detectItemId"); if(detectItemId == null || detectItemId.equals("")){ return mv; } ComplaintDetectItem detectItem = complaintDetectInfoService.getDetectItemById(Integer.valueOf(detectItemId)); mv.addObject("detectItemId",detectItemId); mv.addObject("detectItem",detectItem); return mv; }*/ /** * 跳转到添加修改转入信息页面 * * @return *//* @RequiresPermissions("remark:add:remark") @RequestMapping(value = "/to_produced_info") public ModelAndView toProducedInfo(HttpServletRequest request) { ModelAndView mv = new ModelAndView("cm/inspection/update_produced_info"); String detectId = request.getParameter("detectId"); String state = request.getParameter("state"); if(detectId == null || detectId.equals("")){ return mv; } ComplaintDetectInfo detectInfo = complaintDetectInfoService.getComplaintDetectById(Integer.valueOf(detectId)); mv.addObject("detectId",detectId); mv.addObject("detectInfo",detectInfo); mv.addObject("state",state); return mv; }*/ /** * 跳转到检测完成页面 * * @return */ /*@RequiresPermissions("complete:update:complete") @RequestMapping(value = "/to_detect_complete") public ModelAndView toDetectComplete(HttpServletRequest request) { ModelAndView mv = new ModelAndView("cm/inspection/detect_complete"); String detectId = request.getParameter("detectId"); if(detectId == null || detectId.equals("")){ return mv; } ComplaintDetectInfo detectInfo = complaintDetectInfoService.getComplaintDetectById(Integer.valueOf(detectId)); mv.addObject("detectId",detectId); mv.addObject("detectInfo",detectInfo); return mv; }*/ /** * 修改检测信息备注 * @param request * @return * @throws Exception */ @RequiresPermissions("remark:add:remark") @ResponseBody @RequestMapping("/update") public ResponseJson addRemark(HttpServletRequest request, ComplaintDetectInfo detectInfo) throws Exception { ResponseJson msg = new ResponseJson(); if(detectInfo == null){ msg.setResultCode(500); msg.setReturnCode(500); return msg; } if(detectInfo.getDetectId() == null){ msg.setResultCode(500); msg.setReturnCode(500); return msg; } Integer num = complaintDetectInfoService.updateDetectById(detectInfo); if (num < 1) { msg.setResultCode(500); msg.setReturnCode(500); } else { msg.setResultCode(200); msg.setReturnCode(200); } return msg; } /** * 跳转到查看仓储进度页面 * * @return */ @RequiresPermissions("complete:update:complete") @RequestMapping(value = "/to_view_progress") public ModelAndView toViewProgress(HttpServletRequest request) { ModelAndView mv = new ModelAndView("cm/inspection/view_progress"); String signclosedId = request.getParameter("signclosedId"); if(signclosedId == null || signclosedId.equals("")){ return mv; } if(Integer.valueOf(signclosedId) == 0){ return mv; } List signclosedProductInfo = null; List awaitingSignclosedProductInfo = null; ComplaintSignclosedInfo complaintSignclosedInfo = complaintSignclosedInfoService.getSignclosedById(Integer.valueOf(signclosedId)); signclosedProductInfo = signclosedProductInfoService.listSignclosedById(complaintSignclosedInfo.getSignclosedId()); mv.addObject("signclosedProductInfo",signclosedProductInfo); mv.addObject("signclosedInfo",complaintSignclosedInfo); mv.addObject("signclosedId",signclosedId); return mv; } /** * 跳转到查看物流信息页面 * * @return */ @RequestMapping(value = "/to_view_logistics") public ModelAndView toViewLogistics(HttpServletRequest request) { ModelAndView mv = new ModelAndView("cm/logistics/view_logistics"); String billCode = request.getParameter("billCode"); String billName = request.getParameter("billName"); if(billCode == null || billCode.equals("") ||billName == null || billName.equals("")){ return mv; } mv.addObject("billCode",billCode); mv.addObject("billName",billName); return mv; } /** * 跳转到修改检测完成信息页面 * * @return */ @RequiresPermissions("complete:update:complete") @RequestMapping(value = "/to_update_complete") public ModelAndView toUpdateComplete(HttpServletRequest request) { ModelAndView mv = new ModelAndView("cm/inspection/update_complete"); String detectId = request.getParameter("detectId"); if(detectId == null || detectId.equals("")){ return mv; } ComplaintDetectInfo detectInfo = complaintDetectInfoService.getDetectById(Integer.valueOf(detectId)); detectInfo.setDetectDate(new Date()); mv.addObject("detectId",detectId); mv.addObject("detectInfo",detectInfo); return mv; } /** * 查询单个检测信息 * * @return */ @RequiresPermissions("complete:update:complete") @ResponseBody @RequestMapping(value = "/get_detect") public ResponseJson getDetect(HttpServletRequest request,Integer detectId) { ResponseJson msg = new ResponseJson(); if(detectId == null){ msg.setResultCode(500); msg.setReturnCode(500); return msg; } ComplaintDetectInfo detectInfo = complaintDetectInfoService.getDetectById(detectId); if(detectInfo == null){ msg.setResultCode(500); msg.setReturnCode(500); return msg; }else { List detectImg = complaintDetectInfoService.listDetectImg(detectId); ComplaintSignclosedInfo signclosedInfo = complaintSignclosedInfoService.getSignclosedById(detectInfo.getSignclosedId()); LogisticsInfo info = new LogisticsInfo(); if(signclosedInfo != null){ info.setLogisticsRstCode(signclosedInfo.getSignclosedLogistics()); List logisticsInfos = salesOrderService.getLogisticsInfo(info); if(logisticsInfos != null && logisticsInfos.size() > 0){ signclosedInfo.setSignclosedLogisticsName(logisticsInfos.get(0).getLogisticsName()); }else{ signclosedInfo.setSignclosedLogisticsName("其它快递"); } } Admin admin = AdminUtils.getLoginAdmin(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); msg.addResponseKeyValue("detectImg",detectImg); msg.addResponseKeyValue("detectInfo",detectInfo); msg.addResponseKeyValue("signclosedInfo",signclosedInfo); msg.addResponseKeyValue("date",sdf.format(new Date()));//当前时间 msg.addResponseKeyValue("adminName",admin.getAdminName());//当前登录人 msg.setResultCode(200); msg.setReturnCode(200); return msg; } } /** * 跳转到查看客服录入客诉信息页面 * * @return */ @RequiresPermissions("complete:select:complete") @RequestMapping(value = "/to_customer_detail") public ModelAndView toCustomerDetail(HttpServletRequest request) { ModelAndView mv = new ModelAndView("cm/inspection/customer_detail"); return mv; } /** * 检测完成 * @param request * @return * @throws Exception */ @RequiresPermissions("complete:update:complete") @ResponseBody @RequestMapping("/update_complete") public ResponseJson update_complete(HttpServletRequest request, ComplaintDetectInfo detectInfo) throws Exception { ResponseJson msg = new ResponseJson(); if(detectInfo == null){ msg.setResultCode(500); msg.setReturnCode(500); return msg; } if(detectInfo.getDetectId() == null || detectInfo.getDetectId().equals("")){ msg.setResultCode(500); msg.setReturnCode(500); return msg; } String detectDate = request.getParameter("detect_date"); if(detectDate != null){ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); detectInfo.setDetectDate(format.parse(detectDate)); } String[] componentsImgs = request.getParameterValues("componentsImg"); Integer num = complaintDetectInfoService.updateDetectById(detectInfo,componentsImgs); if (num < 1) { msg.setResultCode(500); msg.setReturnCode(500); } else { msg.setResultCode(200); msg.setReturnCode(200); } return msg; } /** * 删除检测信息 * @param request * @return * @throws Exception */ @RequiresPermissions("remark:add:remark") @ResponseBody @RequestMapping("/delete") public ResponseJson delete(HttpServletRequest request, Integer detectId) throws Exception { ResponseJson msg = new ResponseJson(); if(detectId == null){ msg.setResultCode(500); msg.setReturnCode(500); return msg; } Integer num = complaintDetectInfoService.deleteDetect(detectId); if (num < 1) { msg.setResultCode(500); msg.setReturnCode(500); } else { msg.setResultCode(200); msg.setReturnCode(200); } return msg; } /** * 查询单个检测信息 * @param request * @return * @throws Exception */ @RequiresPermissions("remark:add:remark") @ResponseBody @RequestMapping("/getDetectionBasis") public ResponseJson getDetectionBasis(HttpServletRequest request, Integer basisId) throws Exception { ResponseJson msg = new ResponseJson(); if(basisId == null){ msg.setResultCode(500); msg.setReturnCode(500); return msg; } DetectionBasis detectionBasis = new DetectionBasis(); detectionBasis.setBasisId(basisId); List listDetectionBasis = complaintDetectInfoService.listDetectionBasis(detectionBasis); if (listDetectionBasis.size() < 1) { msg.setResultCode(500); msg.setReturnCode(500); } else { msg.addResponseKeyValue("detectionBasis",listDetectionBasis.get(0)); msg.setResultCode(200); msg.setReturnCode(200); } return msg; } /** * 客服确认处理结果 * @param request * @return * @throws Exception */ @RequiresPermissions("complete:update:complete") @ResponseBody @RequestMapping("/customer_confirm") public ResponseJson customerConfirm(HttpServletRequest request, ComplaintDetectInfo detectInfo) throws Exception { ResponseJson msg = new ResponseJson(); if(detectInfo == null){ msg.setResultCode(500); msg.setReturnCode(500); return msg; } if(detectInfo.getDetectId() == null || "".equals(detectInfo.getDetectId())){ msg.setResultCode(500); msg.setReturnCode(500); return msg; } if (!complaintDetectInfoService.customerConfirm(detectInfo)) { msg.setResultCode(500); msg.setReturnCode(500); } else { ComplaintDetectInfo info = complaintDetectInfoService.getDetectById(detectInfo.getDetectId()); msg.setResultCode(200); msg.setReturnCode(200); msg.addResponseKeyValue("detectInfo",info); } return msg; } }