package com.zcloud.controller.inspectAnnually; import cn.hutool.core.bean.BeanUtil; import com.alibaba.excel.util.DateUtils; import com.zcloud.controller.base.BaseController; import com.zcloud.entity.Page; import com.zcloud.entity.PageData; import com.zcloud.logs.LogAnno; import com.zcloud.service.freighttrailer.FreightTrailerService; import com.zcloud.service.inspectAnnually.InspectAnnuallyService; import com.zcloud.service.operatingvehicles.OperatingVehiclesService; import com.zcloud.service.system.ImgFilesService; import com.zcloud.util.DateUtil; import com.zcloud.util.Jurisdiction; import com.zcloud.util.ObjectExcelView; import com.zcloud.util.Tools; import org.apache.commons.lang.StringUtils; import org.apache.shiro.util.CollectionUtils; 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.ResponseBody; import org.springframework.web.servlet.ModelAndView; import javax.xml.crypto.Data; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; /** * 年检管理 */ @Controller @RequestMapping("/inspectAnnually") public class InspectAnnuallyController extends BaseController { @Autowired private InspectAnnuallyService inspectAnnuallyService; @Autowired private ImgFilesService imgfilesService; @Autowired private OperatingVehiclesService operatingVehiclesService; @Autowired private FreightTrailerService freightTrailerService; /** * 新增 * * @param * @throws Exception */ @RequestMapping(value = "/add") // @RequiresPermissions( value = {"question:add" , "courseware:add"}, logical = Logical.OR) @ResponseBody @LogAnno(menuType = "机务档案", menuServer = "年检管理", instructionsOperate = "年检管理", instructionsType = "新增") public Object add() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd.put("INSPECTANNUALLY_ID", this.get32UUID()); //主键 pd.put("CREATOR", Jurisdiction.getUSER_ID()); //添加人id pd.put("CREATORNAME", Jurisdiction.getName()); //添加人 pd.put("CREATTIME", DateUtil.date2Str(new Date())); //添加时间 pd.put("ISDELETE", "0"); //是否删除(0:有效 1:删除) pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); //企业ID pd.put("ARCHIVES_TYPE", "0"); //档案状态 pd.put("VEHICLE", pd.get("PLATE_NUMBER")); if(DateUtil.compareDate(pd.getString("DUE_DATE"),DateUtil.getDay()) && DateUtil.compareDate(DateUtil.getDay(),pd.getString("REMINDER_DATE"))) { pd.put("REVERT", 2); } else if (DateUtil.compareDate(DateUtil.getDay(),pd.getString("DUE_DATE"))) { pd.put("REVERT", 0); } else if (DateUtil.compareDate(pd.getString("DUE_DATE"),DateUtil.getDay())) { pd.put("REVERT", 1); } inspectAnnuallyService.save(pd); map.put("pd", pd); map.put("result", errInfo); return map; } /** * 删除 * * @param * @throws Exception */ @RequestMapping(value = "/delete") // @RequiresPermissions( value = {"question:del" , "courseware:del"}, logical = Logical.OR) @ResponseBody @LogAnno(menuType = "机务档案", menuServer = "年检管理", instructionsOperate = "年检管理", instructionsType = "删除") public Object delete() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd.put("DELETEOR", Jurisdiction.getUSER_ID()); //删除人id pd.put("DELETEORNAME", Jurisdiction.getName()); //删除人 pd.put("DELETTIME", DateUtil.date2Str(new Date())); //删除时间 inspectAnnuallyService.delete(pd); map.put("result", errInfo); //返回结果 return map; } /** * 修改 * * @param * @throws Exception */ @RequestMapping(value = "/edit") // @RequiresPermissions( value = {"question:edit" , "courseware:edit"}, logical = Logical.OR) @ResponseBody @LogAnno(menuType = "机务档案", menuServer = "年检管理", instructionsOperate = "年检管理", instructionsType = "修改") public Object edit() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd.put("OPERATOR", Jurisdiction.getUSER_ID()); //修改人id pd.put("OPERATORNAME", Jurisdiction.getName()); //修改人 pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间 if(DateUtil.compareDate(pd.getString("DUE_DATE"),DateUtil.getDay()) && DateUtil.compareDate(DateUtil.getDay(),pd.getString("REMINDER_DATE"))) { pd.put("REVERT", 2); } else if (DateUtil.compareDate(DateUtil.getDay(),pd.getString("DUE_DATE"))) { pd.put("REVERT", 0); } else if (DateUtil.compareDate(pd.getString("DUE_DATE"),DateUtil.getDay())) { pd.put("REVERT", 1); } inspectAnnuallyService.edit(pd); map.put("pd", pd); map.put("result", errInfo); return map; } /** * 修改 * * @param * @throws Exception */ @RequestMapping(value = "/edit2") // @RequiresPermissions( value = {"question:edit" , "courseware:edit"}, logical = Logical.OR) @ResponseBody @LogAnno(menuType = "机务档案", menuServer = "年检管理", instructionsOperate = "年检管理", instructionsType = "修改") public Object edit2() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd.put("OPERATOR", Jurisdiction.getUSER_ID()); //修改人id pd.put("OPERATORNAME", Jurisdiction.getName()); //修改人 pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间 inspectAnnuallyService.edit2(pd); map.put("pd", pd); map.put("result", errInfo); return map; } /** * 列表 * * @param page * @throws Exception */ @RequestMapping(value = "/list") // @RequiresPermissions( value = {"question:list" , "courseware:list"}, logical = Logical.OR) @ResponseBody @LogAnno(menuType = "机务档案", menuServer = "年检管理", instructionsOperate = "年检管理", instructionsType = "列表") public Object list(Page page) throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); //企业ID page.setPd(pd); List varList = inspectAnnuallyService.list(page); //列出年检列表 System.out.println("varList = " + varList); varList.stream().anyMatch(data -> { if ("1".equals(data.getString("OPEAR_ISSCRAP")) || "1".equals(data.getString("FREIGHT_ISSCRAP"))) { data.put("ARCHIVES_TYPE", "2"); } else if ("1".equals(data.getString("OPEAR_ISASSIGNED")) || "1".equals(data.getString("FREIGHT_ISASSIGNED"))) { data.put("ARCHIVES_TYPE", "1"); }else{ data.put("ARCHIVES_TYPE", "0"); } return false; }); varList.forEach(data -> { Date dueDate = DateUtil.fomatDate(data.getString("DUE_DATE")); Date reminderDate = DateUtil.fomatDate(data.getString("REMINDER_DATE")); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String toDay = sdf.format(new Date()); Date date = null; try { date = sdf.parse(toDay); } catch (ParseException e) { throw new RuntimeException(e); } // 已到期 if(dueDate.before(date)) { data.put("REVERT", "0"); try { inspectAnnuallyService.edit(data); } catch (Exception e) { throw new RuntimeException(e); } // 即将到期 } else if ((dueDate.after(date) || dueDate.equals(date)) && (reminderDate.before(date) || reminderDate.equals(date))) { data.put("REVERT", "2"); try { inspectAnnuallyService.edit(data); } catch (Exception e) { throw new RuntimeException(e); } // 未到期 }else{ data.put("REVERT", "1"); try { inspectAnnuallyService.edit(data); } catch (Exception e) { throw new RuntimeException(e); } } }); map.put("varList", varList); map.put("page", page); map.put("result", errInfo); return map; } /** * 去修改页面获取数据 * * @param * @throws Exception */ @RequestMapping(value = "/goEdit") // @RequiresPermissions( value = {"question:edit" , "courseware:edit"}, logical = Logical.OR) @ResponseBody @LogAnno(menuType = "机务档案", menuServer = "年检管理", instructionsOperate = "年检管理", instructionsType = "去修改页面获取数据") public Object goEdit() throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd = inspectAnnuallyService.findById(pd); //根据ID读取 PageData vehicle = new PageData(); if ("1".equals(pd.getString("VEHICLE_MODEL"))) { vehicle.put("OPERATING_ID", pd.get("VEHICLE")); vehicle.put("CORPINFO_ID", pd.get("CORPINFO_ID")); PageData pageData = operatingVehiclesService.findById(vehicle); pd.put("VEHICLE_BRAND", pageData.get("VEHICLE_BRAND")); pd.put("VEHICLE_TYPE", pageData.get("VEHICLE_MODEL")); pd.put("PLATE_NUMBER", pageData.get("PLATE_NUMBER")); } else { vehicle.put("FREIGHTTRAILER_ID", pd.get("VEHICLE")); vehicle.put("CORPINFO_ID", pd.get("CORPINFO_ID")); PageData pageData = freightTrailerService.findById(vehicle); pd.put("VEHICLE_BRAND", pageData.get("TRAILER_BRAND")); pd.put("VEHICLE_TYPE", pageData.get("TRAILER_MODEL")); } pd.put("FOREIGN_KEY", pd.getString("INSPECTANNUALLY_ID")); pd.put("TYPE", 124); List inspectinfoImgs = imgfilesService.listAll(pd);//年检资料图片 map.put("pd", pd); map.put("inspectinfoImgs", inspectinfoImgs); map.put("result", errInfo); return map; } @RequestMapping(value = "/annuallyList") // @RequiresPermissions( value = {"question:list" , "courseware:list"}, logical = Logical.OR) @ResponseBody @LogAnno(menuType = "机务档案", menuServer = "年检管理", instructionsOperate = "年检管理", instructionsType = "列表") public Object annuallyList(Page page) throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); //企业ID page.setPd(pd); List varList = inspectAnnuallyService.annuallyList(page); //列出Question列表 map.put("varList", varList); map.put("page", page); map.put("result", errInfo); return map; } /** * 导出到excel * * @param * @throws Exception */ @RequestMapping(value = "/excel") // // @RequiresPermissions("toExcel") public ModelAndView exportExcel() throws Exception { ModelAndView mv = new ModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); String DATA_IDS = pd.getString("DATA_IDS"); if (Tools.notEmpty(DATA_IDS)) { String[] ArrayDATA_IDS = DATA_IDS.split(","); pd.put("ArrayDATA_IDS", ArrayDATA_IDS); } Map dataMap = new HashMap(); List titles = new ArrayList(); titles.add("自编号"); //1 titles.add("年检车辆"); //2 titles.add("车辆品牌"); //3 titles.add("年检车型"); //4 titles.add("车主业户"); //5 titles.add("联系电话"); //6 titles.add("登记人"); //7 titles.add("办理日期"); //8 titles.add("年检周期"); //9 titles.add("到期日期"); //10 titles.add("年检费用"); //11 titles.add("实收费用"); //12 titles.add("年检地址"); //13 titles.add("提醒天数"); //14 titles.add("提醒日期"); //15 titles.add("年检资料"); //16 titles.add("备注"); //17 dataMap.put("titles", titles); List varOList = inspectAnnuallyService.listOut(pd); List varList = new ArrayList(); for (int i = 0; i < varOList.size(); i++) { PageData vpd = new PageData(); vpd.put("var1", varOList.get(i).getString("NUM"));//1 vpd.put("var2", varOList.get(i).getString("VEHICLE"));//2 vpd.put("var3", varOList.get(i).getString("VEHICLE_BRAND"));//3 vpd.put("var4", varOList.get(i).getString("VEHICLE_MODEL"));//4 vpd.put("var5", varOList.get(i).getString("CAR_OWNERS"));//5 vpd.put("var6", varOList.get(i).getString("TELEPHONE"));//6 vpd.put("var7", varOList.get(i).getString("REGISTRANT"));//7 vpd.put("var8", varOList.get(i).getString("PROCESSING_DATE"));//8 vpd.put("var9", varOList.get(i).getString("ANNUAL_INSPECTION_CYCLE"));//9 vpd.put("var10", varOList.get(i).getString("DUE_DATE"));//10 vpd.put("var11", varOList.get(i).getString("INSPECTFEES"));//11 vpd.put("var12", varOList.get(i).getString("ACTUAL_COLLECTION"));//12 vpd.put("var13", varOList.get(i).getString("ADDRESS"));//13 vpd.put("var14", varOList.get(i).getString("REMINDER_DAYS"));//14 vpd.put("var15", varOList.get(i).getString("REMINDER_DATE"));//15 vpd.put("var16", varOList.get(i).getString("INSPECTINFO"));//16 vpd.put("var17", varOList.get(i).getString("NOTES"));//17 varList.add(vpd); } dataMap.put("varList", varList); ObjectExcelView erv = new ObjectExcelView(); mv = new ModelAndView(erv, dataMap); return mv; } }