package com.gk.firework.Controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.gk.firework.Controller.Base.BaseController; import com.gk.firework.Domain.*; import com.gk.firework.Domain.Utils.*; import com.gk.firework.Domain.Vo.EnterpriseVo; import com.gk.firework.Domain.Vo.PatrolOrderVo; import com.gk.firework.Service.*; import com.sun.org.apache.xpath.internal.operations.Bool; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.support.StandardMultipartHttpServletRequest; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; @Api(tags = "安全巡检接口") @RestController public class PatrolController extends BaseController{ @Value("${patrolPath}") private String patrolPath; //配置文件配置的物理保存地址 @Value("${patrolUrl}") private String patrolUrl; //配置文件配置的url @Autowired PatrolOrderService patrolOrderService; @Autowired PatrolDetailService patrolDetailService; @Autowired SelfCheckService selfCheckService; @Autowired EnterpriseService enterpriseService; @Autowired UserService userService; @Autowired ExcelExportService excelExportService; @GetMapping("/getEnterpriseVo") @ApiOperation(value = "根据企业编号获取巡检企业信息",response = Msg.class) @ApiImplicitParams({ @ApiImplicitParam(name = "enterprisenumber",value = "单位编号"), }) public Msg getEnterpriseVo(EnterpriseVo enterpriseVo){ Msg msg = new Msg(); msg.setCode("200"); msg.setMessage("success"); EnterpriseVo enterprise = enterpriseService.selctSimpleByNumber(enterpriseVo.getEnterprisenumber()); List patrolOrderVos = patrolOrderService.selectListByEnterprise(enterprise.getEnterprisename(),getUser().getUsername()); enterprise.setPatrolOrderVos(patrolOrderVos); if (enterprise != null) { msg.setResult(enterprise); return msg; }else { msg.setCode("999"); msg.setMessage("未找到该企业"); return msg; } } @GetMapping("/getSelfCheck") @ApiOperation(value = "根据企业类型获取检查内容",response = Msg.class) public Msg getSelfCheck(SelfCheckInfo selfCheck){ Msg msg = new Msg(); msg.setCode("200"); msg.setMessage("success"); List selfChecks = selfCheckService.selctByType(selfCheck.getType()); if (selfChecks.size() > 0) { msg.setResult(selfChecks); return msg; }else { msg.setCode("999"); msg.setMessage("未找到该检查内容"); return msg; } } @ApiOperation(value = "上传图片",notes = "上传图片") @ApiImplicitParams({ @ApiImplicitParam(paramType="query",name = "files",value = "文件"), }) @PostMapping("/uploadPic") @ResponseBody public Msg uploadPic(StandardMultipartHttpServletRequest req){ Msg msg = new Msg(); msg.setCode("200"); msg.setMessage("success"); MultiValueMap multipartFiles = req.getMultiFileMap(); MultipartFile picFile = multipartFiles.get("files").get(0); if (null == picFile){ msg.setCode("404"); msg.setMessage("上传文件为空"); }else { try { String picmame = UploadUtil.uploadFile(picFile,patrolPath); msg.setResult(patrolUrl+picmame); }catch (Exception e){ e.printStackTrace(); msg.setCode("500"); msg.setMessage("上传失败"); } } return msg; } @ApiOperation(value = "提交检查内容",notes = "提交检查内容") @ApiImplicitParams({ @ApiImplicitParam(name = "enterpriseId",value = "企业id"), @ApiImplicitParam(name = "userId",value = "用户id"), @ApiImplicitParam(name = "createdby",value = "用户名"), @ApiImplicitParam(name = "checkcontent",value = "检查内容"), @ApiImplicitParam(name = "content",value = "检查内容"), @ApiImplicitParam(name = "standard",value = "参考判断"), @ApiImplicitParam(name = "choose",value = "选项"), @ApiImplicitParam(name = "reason",value = "理由"), @ApiImplicitParam(name = "baforepath",value = "整改前图片"), @ApiImplicitParam(name = "ismend",value = "是否整改"), }) @PostMapping("/submitPatrol") @ResponseBody public Msg submitPatrol(@RequestBody JSONObject jsonObject){ Msg msg = new Msg(); msg.setCode("200"); msg.setMessage("success"); Long enterpriseId = jsonObject.getLong("enterpriseId"); Long userId = jsonObject.getLong("userId"); String createdby = jsonObject.getString("createdby"); JSONArray jsonArray = jsonObject.getJSONArray("checkcontent"); PatrolOrderInfo patrolOrderInfo = new PatrolOrderInfo(); patrolOrderInfo.setUserid(userId); patrolOrderInfo.setCompanyid(enterpriseId); patrolOrderInfo.setCreatedby(createdby); patrolOrderInfo.setCreateddate(new Date()); patrolOrderInfo.setModifiedby(createdby); patrolOrderInfo.setModifieddate(new Date()); patrolOrderService.save(patrolOrderInfo); List patrolDetailInfoList = new ArrayList<>(); Byte ismend = 1; for (int i = 0; i < jsonArray.size(); i++){ JSONObject patrolDetail = jsonArray.getJSONObject(i); PatrolDetailInfo patrolDetailInfo = new PatrolDetailInfo(); patrolDetailInfo.setOrderid(patrolOrderInfo.getId()); patrolDetailInfo.setContent(patrolDetail.getString("content")); patrolDetailInfo.setStandard(patrolDetail.getString("standard")); patrolDetailInfo.setChoose(patrolDetail.getString("choose")); patrolDetailInfo.setReason(patrolDetail.getString("reason")); patrolDetailInfo.setBeforepath(patrolDetail.getString("baforepath")); patrolDetailInfo.setIsmend(patrolDetail.getByte("ismend")); patrolDetailInfo.setCreatedby(createdby); patrolDetailInfo.setCreateddate(new Date()); patrolDetailInfo.setModifiedby(createdby); patrolDetailInfo.setModifieddate(new Date()); if (patrolDetailInfo.getIsmend() == 0){ ismend = 0; } patrolDetailInfoList.add(patrolDetailInfo); } patrolDetailService.saveBatch(patrolDetailInfoList); patrolOrderInfo.setIsmend(ismend); patrolOrderService.updateById(patrolOrderInfo); return msg; } @GetMapping("/selfCheck") @ApiOperation(value = "获取自定义检查内容",response = Msg.class) @ApiImplicitParams({ @ApiImplicitParam(name = "pageIndex",value = "当前页码"), @ApiImplicitParam(name = "pageSize",value = "每页行数"), @ApiImplicitParam(name = "sort",value = "排序规则"), @ApiImplicitParam(name = "order",value = "排序字段"), @ApiImplicitParam(name = "type",value = "检查类型"), @ApiImplicitParam(name = "content",value = "检查内容"), }) public Msg getSelfCheckList(@RequestParam(defaultValue = "0") Integer pageIndex, @RequestParam(defaultValue = "10") Integer pageSize, String sort, String order, String type, String content){ Msg msg = new Msg(); msg.setCode("200"); msg.setMessage("success"); PageInfo pageInfo = new PageInfo(pageIndex, pageSize,sort,order); HashMap condition = new HashMap(); if (StringUtils.isNotBlank(type)) { condition.put("type", type.trim()); } if (StringUtils.isNotBlank(content)) { condition.put("content", content.trim()); } pageInfo.setCondition(condition); selfCheckService.selectDataGrid(pageInfo); msg.setResult(pageInfo); return msg; } @PostMapping("/selfCheck") @ApiOperation(value = "添加自定义检查内容",response = Msg.class) public Msg addSelfCheckList(@RequestBody SelfCheckInfo selfCheckInfo){ Msg msg = new Msg(); msg.setCode("200"); msg.setMessage("success"); if (StringUtils.isBlank(selfCheckInfo.getType())){ msg.setCode("999"); msg.setMessage("检查类型不能为空"); return msg; }else if (StringUtils.isBlank(selfCheckInfo.getContent())){ msg.setCode("999"); msg.setMessage("检查内容不能为空"); return msg; }else if (StringUtils.isBlank(selfCheckInfo.getStandard())){ msg.setCode("999"); msg.setMessage("参考判断不能为空"); return msg; } selfCheckInfo.setCreatedby(getUser().getUsername()); selfCheckInfo.setModifiedby(getUser().getUsername()); selfCheckInfo.setCreateddate(new Date()); selfCheckInfo.setModifieddate(new Date()); selfCheckInfo.setIsdel((byte)0); selfCheckService.save(selfCheckInfo); return msg; } @PostMapping("/putselfCheck") @ApiOperation(value = "修改自定义检查内容",response = Msg.class) public Msg editSelfCheckList(@RequestBody SelfCheckInfo selfCheckInfo){ Msg msg = new Msg(); msg.setCode("200"); msg.setMessage("success"); if (StringUtils.isBlank(selfCheckInfo.getType())){ msg.setCode("999"); msg.setMessage("检查类型不能为空"); return msg; }else if (StringUtils.isBlank(selfCheckInfo.getContent())){ msg.setCode("999"); msg.setMessage("检查内容不能为空"); return msg; }else if (StringUtils.isBlank(selfCheckInfo.getStandard())){ msg.setCode("999"); msg.setMessage("参考判断不能为空"); return msg; } selfCheckInfo.setModifiedby(getUser().getUsername()); selfCheckInfo.setModifieddate(new Date()); selfCheckService.updateById(selfCheckInfo); return msg; } @PostMapping("/delselfCheck") @ApiOperation(value = "删除自定义检查内容",response = Msg.class) public Msg delSelfCheckList(@RequestBody JSONObject jsonObject){ Msg msg = new Msg(); msg.setCode("200"); msg.setMessage("success"); Long id = jsonObject.getLong("id"); SelfCheckInfo selfCheckInfo = selfCheckService.getById(id); if (selfCheckInfo != null){ selfCheckInfo.setIsdel((byte)1); selfCheckInfo.setModifiedby(getUser().getUsername()); selfCheckInfo.setModifieddate(new Date()); selfCheckService.updateById(selfCheckInfo); return msg; }else { msg.setCode("999"); msg.setMessage("未找到检查内容"); return msg; } } @PostMapping("/selfChecks") @ApiOperation(value = "删除自定义检查内容",response = Msg.class) public Msg bashDelSelfCheckList(@RequestBody JSONObject jsonObject){ Msg msg = new Msg(); msg.setCode("200"); msg.setMessage("success"); JSONArray ids = jsonObject.getJSONArray("ids"); List idList = ids.toJavaList(Long.class); List selfCheckInfoList = selfCheckService.selectByIds(idList); if (selfCheckInfoList != null && selfCheckInfoList.size() > 0){ for (SelfCheckInfo selfCheckInfo : selfCheckInfoList) { selfCheckInfo.setIsdel((byte)1); selfCheckInfo.setModifiedby(getUser().getUsername()); selfCheckInfo.setModifieddate(new Date()); selfCheckService.updateById(selfCheckInfo); } return msg; }else { msg.setCode("999"); msg.setMessage("未找到检查内容"); return msg; } } @PostMapping("/importSelfCheck") @ApiOperation(value = "导入自定义检查内容",response = Msg.class) @ApiImplicitParams({ @ApiImplicitParam(name = "file",value = "文件",required = true), }) public Msg addSelfCheckList(MultipartFile file){ Msg msg = new Msg(); msg.setCode("200"); msg.setMessage("success"); String filesave =""; try { SimpleDateFormat sdf = new SimpleDateFormat( "yyyyMMddHHmmssSSS" ); if (file == null) { msg.setCode("404"); msg.setMessage("未找到上传文件"); return msg; } long size = file.getSize(); if(0 == size) { msg.setCode("404"); msg.setMessage("上传文件大小为空"); return msg; } if(!FileOptUtils.isDirExists(patrolPath)){ msg.setCode("500"); msg.setMessage("发生错误或不为目录"); return msg; } filesave = patrolPath + getUser().getUsername() + "_" + sdf.format(new Date()) +".xlsx"; file.transferTo(new File(filesave)); InputStream in = new FileInputStream(filesave); String name = file.getOriginalFilename(); Boolean isExcel2007 = name.substring(name.lastIndexOf(".") + 1).endsWith("xlsx")? true:false; BooleanReason blret = excelExportService.imporSelfCheckExcel(in,getUser().getUsername(),isExcel2007); if(blret.getValue().equals(false)) { msg.setCode("500"); msg.setMessage(blret.getResultmsg()); return msg; } } catch (Exception e) { e.printStackTrace(); msg.setCode("500"); msg.setMessage("导入发生错误"); return msg; } return msg; } @GetMapping("/patrolOrder") @ApiOperation(value = "获取安全巡检记录",response = Msg.class) @ApiImplicitParams({ @ApiImplicitParam(name = "pageIndex",value = "当前页码"), @ApiImplicitParam(name = "pageSize",value = "每页行数"), @ApiImplicitParam(name = "sort",value = "排序规则"), @ApiImplicitParam(name = "order",value = "排序字段"), @ApiImplicitParam(name = "starttime",value = "开始时间"), @ApiImplicitParam(name = "endtime",value = "结束时间"), @ApiImplicitParam(name = "enterprisetype",value = "企业类型"), @ApiImplicitParam(name = "enterprisename",value = "企业名称"), @ApiImplicitParam(name = "checkname",value = "检查人"), @ApiImplicitParam(name = "ismend",value = "是否整改"), @ApiImplicitParam(name = "province",value = "省份"), @ApiImplicitParam(name = "city",value = "城市"), @ApiImplicitParam(name = "area",value = "区县"), @ApiImplicitParam(name = "town",value = "乡镇"), @ApiImplicitParam(name = "community",value = "社区"), }) public Msg getPatrolOrderList(@RequestParam(defaultValue = "0") Integer pageIndex, @RequestParam(defaultValue = "10") Integer pageSize, String sort, String order, String starttime, String endtime, String enterprisename, String checkname, String enterprisetype, String province, String city, String area, String town, String community, Byte ismend){ Msg msg = new Msg(); msg.setCode("200"); msg.setMessage("success"); PageInfo pageInfo = new PageInfo(pageIndex, pageSize,sort,order); HashMap condition = new HashMap(); if (StringUtils.isNotBlank(starttime)) { condition.put("starttime", starttime.trim()); } if (StringUtils.isNotBlank(endtime)) { condition.put("endtime", endtime.trim()); } if (StringUtils.isNotBlank(enterprisename)) { condition.put("enterprisename", enterprisename.trim()); } if (StringUtils.isNotBlank(checkname)) { condition.put("checkname", checkname.trim()); } if (StringUtils.isNotBlank(enterprisetype)) { condition.put("enterprisetype", enterprisetype.trim()); } if (ismend != null){ condition.put("ismend",ismend); } UserInfo userInfo = userService.getById(getUser().getId()); if (userInfo.getCompanyid() != null){ Enterprise enterprise = enterpriseService.getById(userInfo.getCompanyid()); condition.put("enterprisename", enterprise.getEnterprisename()); }else if (userInfo.getType() == 3){ condition.put("province",userInfo.getProvince()); condition.put("city",userInfo.getCity()); condition.put("area",userInfo.getArea()); condition.put("town",userInfo.getTown()); condition.put("community",userInfo.getCommunity()); } if (StringUtils.isNotBlank(province) && condition.get("province") == null) { condition.put("province", province.trim()); if (StringUtils.isNotBlank(city)) { condition.put("city", city.trim()); } if (StringUtils.isNotBlank(area)) { condition.put("area", area.trim()); } if (StringUtils.isNotBlank(town)) { condition.put("town", town.trim()); } if (StringUtils.isNotBlank(community)) { condition.put("community", community.trim()); } } pageInfo.setCondition(condition); patrolOrderService.selectDataGrid(pageInfo); msg.setResult(pageInfo); return msg; } @GetMapping("/patrolDetail") @ApiOperation(value = "获取安全巡检明细",response = Msg.class) @ApiImplicitParams({ @ApiImplicitParam(name = "pageIndex",value = "当前页码"), @ApiImplicitParam(name = "pageSize",value = "每页行数"), @ApiImplicitParam(name = "sort",value = "排序规则"), @ApiImplicitParam(name = "order",value = "排序字段"), @ApiImplicitParam(name = "orderid",value = "订单id"), @ApiImplicitParam(name = "ismend",value = "是否整改"), }) public Msg getpatrolDetailList(@RequestParam(defaultValue = "0") Integer pageIndex, @RequestParam(defaultValue = "10") Integer pageSize, String sort, String order, Long orderid, Byte ismend){ Msg msg = new Msg(); msg.setCode("200"); msg.setMessage("success"); PageInfo pageInfo = new PageInfo(pageIndex, pageSize,sort,order); HashMap condition = new HashMap(); if (orderid != null) { condition.put("orderid", orderid); } if (ismend != null) { condition.put("ismend", ismend); } pageInfo.setCondition(condition); patrolDetailService.selectDataGrid(pageInfo); msg.setResult(pageInfo); return msg; } @PostMapping("/mendPatrol") @ApiOperation(value = "上报整改",response = Msg.class) @ApiImplicitParams({ @ApiImplicitParam(name = "id",value = "单据id"), @ApiImplicitParam(name = "file",value = "整改后图片文件"), @ApiImplicitParam(name = "ismend",value = "是否整改"), }) public Msg mendPatrol(Long id, MultipartFile file, Byte ismend) throws Exception { Msg msg = new Msg(); msg.setCode("200"); msg.setMessage("success"); if (id == null){ msg.setCode("999"); msg.setMessage("单据id不能为空"); return msg; } PatrolDetailInfo patrolDetailInfo = patrolDetailService.getById(id); if (patrolDetailInfo == null){ msg.setCode("999"); msg.setMessage("未找到单据"); return msg; } if (file != null){ String origincontract = UploadUtil.uploadFile(file,patrolPath); patrolDetailInfo.setAfterpath(patrolUrl+origincontract); } if (ismend != null){ patrolDetailInfo.setIsmend(ismend); } patrolDetailService.updateById(patrolDetailInfo); //查看所有detail 全为已整改 则修改order为已整改 int isNotMend = patrolDetailService.selectIsNotMend(patrolDetailInfo.getOrderid()); if (isNotMend == 0){ PatrolOrderInfo patrolOrderInfo = patrolOrderService.getById(patrolDetailInfo.getOrderid()); if (patrolOrderInfo != null){ patrolOrderInfo.setIsmend((byte)1); patrolOrderService.updateById(patrolOrderInfo); } } return msg; } @PostMapping("/appMendPatrol") @ApiOperation(value = "APP上报整改",response = Msg.class) @ApiImplicitParams({ @ApiImplicitParam(name = "id",value = "单据id"), @ApiImplicitParam(name = "afterpath",value = "整改后图片文件"), @ApiImplicitParam(name = "ismend",value = "是否整改"), }) public Msg mendPatrol(Long id, String afterpath, Byte ismend) throws Exception { Msg msg = new Msg(); msg.setCode("200"); msg.setMessage("success"); if (id == null){ msg.setCode("999"); msg.setMessage("单据id不能为空"); return msg; } PatrolDetailInfo patrolDetailInfo = patrolDetailService.getById(id); if (patrolDetailInfo == null){ msg.setCode("999"); msg.setMessage("未找到单据"); return msg; } patrolDetailInfo.setAfterpath(afterpath); if (ismend != null){ patrolDetailInfo.setIsmend(ismend); } patrolDetailService.updateById(patrolDetailInfo); //查看所有detail 全为已整改 则修改order为已整改 int isNotMend = patrolDetailService.selectIsNotMend(patrolDetailInfo.getOrderid()); if (isNotMend == 0){ PatrolOrderInfo patrolOrderInfo = patrolOrderService.getById(patrolDetailInfo.getOrderid()); if (patrolOrderInfo != null){ patrolOrderInfo.setIsmend((byte)1); patrolOrderService.updateById(patrolOrderInfo); } } return msg; } }