diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index 083caac..50fcc63 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -16,4 +16,7 @@ public interface IAppDeviceLogService extends IService { List getListByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index 083caac..50fcc63 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -16,4 +16,7 @@ public interface IAppDeviceLogService extends IService { List getListByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java index fc3d0a4..701ff20 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java @@ -2,13 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.util.PhotoUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.awt.*; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; @@ -58,7 +62,52 @@ } @Override + public String fileUploadMarker(MultipartFile file, String text) throws IOException { + if (!file.isEmpty()) { +// String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String uuid = text.substring(text.indexOf("编号:")+3,text.indexOf("经度:"))+"_"+System.currentTimeMillis(); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + PhotoUtils.markImageByText(text,pathName,pathName,0,new Color(0,0,255),"JPG"); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } + + @Override public String findModeCodeByCode(String devcode) { return this.baseMapper.findModeCodeByCode(devcode); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index 083caac..50fcc63 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -16,4 +16,7 @@ public interface IAppDeviceLogService extends IService { List getListByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java index fc3d0a4..701ff20 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java @@ -2,13 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.util.PhotoUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.awt.*; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; @@ -58,7 +62,52 @@ } @Override + public String fileUploadMarker(MultipartFile file, String text) throws IOException { + if (!file.isEmpty()) { +// String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String uuid = text.substring(text.indexOf("编号:")+3,text.indexOf("经度:"))+"_"+System.currentTimeMillis(); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + PhotoUtils.markImageByText(text,pathName,pathName,0,new Color(0,0,255),"JPG"); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } + + @Override public String findModeCodeByCode(String devcode) { return this.baseMapper.findModeCodeByCode(devcode); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 22a1665..e42f082 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; @@ -11,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author stylefeng123 @@ -23,7 +25,32 @@ @Override public List getListByCode(String devcode) { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("devcode",devcode); + entityWrapper.eq("devcode", devcode); return this.selectList(entityWrapper); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index 083caac..50fcc63 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -16,4 +16,7 @@ public interface IAppDeviceLogService extends IService { List getListByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java index fc3d0a4..701ff20 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java @@ -2,13 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.util.PhotoUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.awt.*; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; @@ -58,7 +62,52 @@ } @Override + public String fileUploadMarker(MultipartFile file, String text) throws IOException { + if (!file.isEmpty()) { +// String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String uuid = text.substring(text.indexOf("编号:")+3,text.indexOf("经度:"))+"_"+System.currentTimeMillis(); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + PhotoUtils.markImageByText(text,pathName,pathName,0,new Color(0,0,255),"JPG"); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } + + @Override public String findModeCodeByCode(String devcode) { return this.baseMapper.findModeCodeByCode(devcode); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 22a1665..e42f082 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; @@ -11,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author stylefeng123 @@ -23,7 +25,32 @@ @Override public List getListByCode(String devcode) { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("devcode",devcode); + entityWrapper.eq("devcode", devcode); return this.selectList(entityWrapper); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java new file mode 100644 index 0000000..1db9081 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.util; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; + + +/** + * Created by Administrator on 2015/2/25. + */ +public class PhotoUtils { + /** + * 给图片添加水印文字、可设置水印文字的旋转角度 + * + * @param logoText 要写入的文字 + * @param srcImgPath 源图片路径 + * @param newImagePath 新图片路径 + * @param degree 旋转角度 + * @param color 字体颜色 + * @param formaName 图片后缀 + */ + public static void markImageByText(String logoText, String srcImgPath, String newImagePath, Integer degree, Color color, String formaName) { + InputStream is = null; + OutputStream os = null; + try { + // 1、源图片 + java.awt.Image srcImg = ImageIO.read(new File(srcImgPath)); + BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB); + // 2、得到画笔对象 + Graphics2D g = buffImg.createGraphics(); + // 3、设置对线段的锯齿状边缘处理 + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), java.awt.Image.SCALE_SMOOTH), 0, 0, null); + // 4、设置水印旋转 + if (null != degree) { + g.rotate(Math.toRadians(degree), buffImg.getWidth() / 2, buffImg.getHeight() / 2); + } + // 5、设置水印文字颜色 + g.setColor(color); + // 6、设置水印文字Font + g.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, buffImg.getWidth() / 25)); + // 7、设置水印文字透明度 + g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1f)); + // 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y) + g.drawString(logoText, buffImg.getWidth() / 50, buffImg.getHeight() / 20); + // 9、释放资源 + g.dispose(); + // 10、生成图片 + os = new FileOutputStream(newImagePath); + ImageIO.write(buffImg, formaName, os); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (null != is) + is.close(); + } catch (Exception e) { + e.printStackTrace(); + } + try { + if (null != os) + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index 083caac..50fcc63 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -16,4 +16,7 @@ public interface IAppDeviceLogService extends IService { List getListByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java index fc3d0a4..701ff20 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java @@ -2,13 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.util.PhotoUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.awt.*; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; @@ -58,7 +62,52 @@ } @Override + public String fileUploadMarker(MultipartFile file, String text) throws IOException { + if (!file.isEmpty()) { +// String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String uuid = text.substring(text.indexOf("编号:")+3,text.indexOf("经度:"))+"_"+System.currentTimeMillis(); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + PhotoUtils.markImageByText(text,pathName,pathName,0,new Color(0,0,255),"JPG"); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } + + @Override public String findModeCodeByCode(String devcode) { return this.baseMapper.findModeCodeByCode(devcode); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 22a1665..e42f082 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; @@ -11,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author stylefeng123 @@ -23,7 +25,32 @@ @Override public List getListByCode(String devcode) { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("devcode",devcode); + entityWrapper.eq("devcode", devcode); return this.selectList(entityWrapper); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java new file mode 100644 index 0000000..1db9081 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.util; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; + + +/** + * Created by Administrator on 2015/2/25. + */ +public class PhotoUtils { + /** + * 给图片添加水印文字、可设置水印文字的旋转角度 + * + * @param logoText 要写入的文字 + * @param srcImgPath 源图片路径 + * @param newImagePath 新图片路径 + * @param degree 旋转角度 + * @param color 字体颜色 + * @param formaName 图片后缀 + */ + public static void markImageByText(String logoText, String srcImgPath, String newImagePath, Integer degree, Color color, String formaName) { + InputStream is = null; + OutputStream os = null; + try { + // 1、源图片 + java.awt.Image srcImg = ImageIO.read(new File(srcImgPath)); + BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB); + // 2、得到画笔对象 + Graphics2D g = buffImg.createGraphics(); + // 3、设置对线段的锯齿状边缘处理 + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), java.awt.Image.SCALE_SMOOTH), 0, 0, null); + // 4、设置水印旋转 + if (null != degree) { + g.rotate(Math.toRadians(degree), buffImg.getWidth() / 2, buffImg.getHeight() / 2); + } + // 5、设置水印文字颜色 + g.setColor(color); + // 6、设置水印文字Font + g.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, buffImg.getWidth() / 25)); + // 7、设置水印文字透明度 + g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1f)); + // 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y) + g.drawString(logoText, buffImg.getWidth() / 50, buffImg.getHeight() / 20); + // 9、释放资源 + g.dispose(); + // 10、生成图片 + os = new FileOutputStream(newImagePath); + ImageIO.write(buffImg, formaName, os); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (null != is) + is.close(); + } catch (Exception e) { + e.printStackTrace(); + } + try { + if (null != os) + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index ff8a381..679c266 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; @@ -10,8 +10,8 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dto.DeviceDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.Device; -import com.casic.missiles.modular.system.model.Task; import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -22,9 +22,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -40,7 +37,7 @@ */ @Controller @RequestMapping("/device") -public class DeviceController extends BaseController { +public class DeviceController extends ExportController { @Autowired @@ -158,32 +155,50 @@ /** * 导出设备列表 */ - @RequestMapping(value = "/listExp") - public void reportExport(String projectName, - Long devTypeId, - String devcode, - String pm, - HttpServletRequest httpServletRequest, - HttpServletResponse httpServletResponse) throws IOException { +// @RequestMapping(value = "/listExp") +// public void reportExport(String projectName, Long devTypeId, +// String devcode,String pm, +// String productMode, String contractorNumber,String isSend, +// HttpServletRequest httpServletRequest, +// HttpServletResponse httpServletResponse) throws IOException { +// +// List list = deviceService.reportExport( projectName, +// devTypeId, devcode, pm, productMode, contractorNumber,isSend); +// FileInputStream fileInputStream = new FileInputStream(downloadPath + +// (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); +// try { +// httpServletResponse.setContentType("application/octet-stream"); +// httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); +// Map var = new HashMap<>(); +// var.put("list", list); +// ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); +// } catch (IOException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// httpServletResponse.getOutputStream().flush(); +// httpServletResponse.getOutputStream().close(); +// fileInputStream.close(); +// } +// } - List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); - FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); - Map var = new HashMap<>(); - var.put("list", list); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - } + + + /** + * 导出设备列表(长度超范围优化) + */ + @RequestMapping(value = "/listExp") + public void reportExport(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend) throws IOException { + + List list = deviceService.reportExport( projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceExportEnum.DEVICE_EXPORT, res); } /** diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index 083caac..50fcc63 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -16,4 +16,7 @@ public interface IAppDeviceLogService extends IService { List getListByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java index fc3d0a4..701ff20 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java @@ -2,13 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.util.PhotoUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.awt.*; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; @@ -58,7 +62,52 @@ } @Override + public String fileUploadMarker(MultipartFile file, String text) throws IOException { + if (!file.isEmpty()) { +// String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String uuid = text.substring(text.indexOf("编号:")+3,text.indexOf("经度:"))+"_"+System.currentTimeMillis(); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + PhotoUtils.markImageByText(text,pathName,pathName,0,new Color(0,0,255),"JPG"); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } + + @Override public String findModeCodeByCode(String devcode) { return this.baseMapper.findModeCodeByCode(devcode); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 22a1665..e42f082 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; @@ -11,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author stylefeng123 @@ -23,7 +25,32 @@ @Override public List getListByCode(String devcode) { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("devcode",devcode); + entityWrapper.eq("devcode", devcode); return this.selectList(entityWrapper); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java new file mode 100644 index 0000000..1db9081 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.util; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; + + +/** + * Created by Administrator on 2015/2/25. + */ +public class PhotoUtils { + /** + * 给图片添加水印文字、可设置水印文字的旋转角度 + * + * @param logoText 要写入的文字 + * @param srcImgPath 源图片路径 + * @param newImagePath 新图片路径 + * @param degree 旋转角度 + * @param color 字体颜色 + * @param formaName 图片后缀 + */ + public static void markImageByText(String logoText, String srcImgPath, String newImagePath, Integer degree, Color color, String formaName) { + InputStream is = null; + OutputStream os = null; + try { + // 1、源图片 + java.awt.Image srcImg = ImageIO.read(new File(srcImgPath)); + BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB); + // 2、得到画笔对象 + Graphics2D g = buffImg.createGraphics(); + // 3、设置对线段的锯齿状边缘处理 + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), java.awt.Image.SCALE_SMOOTH), 0, 0, null); + // 4、设置水印旋转 + if (null != degree) { + g.rotate(Math.toRadians(degree), buffImg.getWidth() / 2, buffImg.getHeight() / 2); + } + // 5、设置水印文字颜色 + g.setColor(color); + // 6、设置水印文字Font + g.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, buffImg.getWidth() / 25)); + // 7、设置水印文字透明度 + g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1f)); + // 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y) + g.drawString(logoText, buffImg.getWidth() / 50, buffImg.getHeight() / 20); + // 9、释放资源 + g.dispose(); + // 10、生成图片 + os = new FileOutputStream(newImagePath); + ImageIO.write(buffImg, formaName, os); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (null != is) + is.close(); + } catch (Exception e) { + e.printStackTrace(); + } + try { + if (null != os) + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index ff8a381..679c266 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; @@ -10,8 +10,8 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dto.DeviceDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.Device; -import com.casic.missiles.modular.system.model.Task; import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -22,9 +22,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -40,7 +37,7 @@ */ @Controller @RequestMapping("/device") -public class DeviceController extends BaseController { +public class DeviceController extends ExportController { @Autowired @@ -158,32 +155,50 @@ /** * 导出设备列表 */ - @RequestMapping(value = "/listExp") - public void reportExport(String projectName, - Long devTypeId, - String devcode, - String pm, - HttpServletRequest httpServletRequest, - HttpServletResponse httpServletResponse) throws IOException { +// @RequestMapping(value = "/listExp") +// public void reportExport(String projectName, Long devTypeId, +// String devcode,String pm, +// String productMode, String contractorNumber,String isSend, +// HttpServletRequest httpServletRequest, +// HttpServletResponse httpServletResponse) throws IOException { +// +// List list = deviceService.reportExport( projectName, +// devTypeId, devcode, pm, productMode, contractorNumber,isSend); +// FileInputStream fileInputStream = new FileInputStream(downloadPath + +// (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); +// try { +// httpServletResponse.setContentType("application/octet-stream"); +// httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); +// Map var = new HashMap<>(); +// var.put("list", list); +// ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); +// } catch (IOException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// httpServletResponse.getOutputStream().flush(); +// httpServletResponse.getOutputStream().close(); +// fileInputStream.close(); +// } +// } - List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); - FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); - Map var = new HashMap<>(); - var.put("list", list); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - } + + + /** + * 导出设备列表(长度超范围优化) + */ + @RequestMapping(value = "/listExp") + public void reportExport(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend) throws IOException { + + List list = deviceService.reportExport( projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceExportEnum.DEVICE_EXPORT, res); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 5f92336..d718327 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -37,7 +37,10 @@ List reportExport(String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); String getProjectBydevcode(String devcode); diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index 083caac..50fcc63 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -16,4 +16,7 @@ public interface IAppDeviceLogService extends IService { List getListByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java index fc3d0a4..701ff20 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java @@ -2,13 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.util.PhotoUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.awt.*; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; @@ -58,7 +62,52 @@ } @Override + public String fileUploadMarker(MultipartFile file, String text) throws IOException { + if (!file.isEmpty()) { +// String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String uuid = text.substring(text.indexOf("编号:")+3,text.indexOf("经度:"))+"_"+System.currentTimeMillis(); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + PhotoUtils.markImageByText(text,pathName,pathName,0,new Color(0,0,255),"JPG"); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } + + @Override public String findModeCodeByCode(String devcode) { return this.baseMapper.findModeCodeByCode(devcode); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 22a1665..e42f082 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; @@ -11,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author stylefeng123 @@ -23,7 +25,32 @@ @Override public List getListByCode(String devcode) { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("devcode",devcode); + entityWrapper.eq("devcode", devcode); return this.selectList(entityWrapper); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java new file mode 100644 index 0000000..1db9081 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.util; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; + + +/** + * Created by Administrator on 2015/2/25. + */ +public class PhotoUtils { + /** + * 给图片添加水印文字、可设置水印文字的旋转角度 + * + * @param logoText 要写入的文字 + * @param srcImgPath 源图片路径 + * @param newImagePath 新图片路径 + * @param degree 旋转角度 + * @param color 字体颜色 + * @param formaName 图片后缀 + */ + public static void markImageByText(String logoText, String srcImgPath, String newImagePath, Integer degree, Color color, String formaName) { + InputStream is = null; + OutputStream os = null; + try { + // 1、源图片 + java.awt.Image srcImg = ImageIO.read(new File(srcImgPath)); + BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB); + // 2、得到画笔对象 + Graphics2D g = buffImg.createGraphics(); + // 3、设置对线段的锯齿状边缘处理 + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), java.awt.Image.SCALE_SMOOTH), 0, 0, null); + // 4、设置水印旋转 + if (null != degree) { + g.rotate(Math.toRadians(degree), buffImg.getWidth() / 2, buffImg.getHeight() / 2); + } + // 5、设置水印文字颜色 + g.setColor(color); + // 6、设置水印文字Font + g.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, buffImg.getWidth() / 25)); + // 7、设置水印文字透明度 + g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1f)); + // 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y) + g.drawString(logoText, buffImg.getWidth() / 50, buffImg.getHeight() / 20); + // 9、释放资源 + g.dispose(); + // 10、生成图片 + os = new FileOutputStream(newImagePath); + ImageIO.write(buffImg, formaName, os); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (null != is) + is.close(); + } catch (Exception e) { + e.printStackTrace(); + } + try { + if (null != os) + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index ff8a381..679c266 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; @@ -10,8 +10,8 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dto.DeviceDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.Device; -import com.casic.missiles.modular.system.model.Task; import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -22,9 +22,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -40,7 +37,7 @@ */ @Controller @RequestMapping("/device") -public class DeviceController extends BaseController { +public class DeviceController extends ExportController { @Autowired @@ -158,32 +155,50 @@ /** * 导出设备列表 */ - @RequestMapping(value = "/listExp") - public void reportExport(String projectName, - Long devTypeId, - String devcode, - String pm, - HttpServletRequest httpServletRequest, - HttpServletResponse httpServletResponse) throws IOException { +// @RequestMapping(value = "/listExp") +// public void reportExport(String projectName, Long devTypeId, +// String devcode,String pm, +// String productMode, String contractorNumber,String isSend, +// HttpServletRequest httpServletRequest, +// HttpServletResponse httpServletResponse) throws IOException { +// +// List list = deviceService.reportExport( projectName, +// devTypeId, devcode, pm, productMode, contractorNumber,isSend); +// FileInputStream fileInputStream = new FileInputStream(downloadPath + +// (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); +// try { +// httpServletResponse.setContentType("application/octet-stream"); +// httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); +// Map var = new HashMap<>(); +// var.put("list", list); +// ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); +// } catch (IOException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// httpServletResponse.getOutputStream().flush(); +// httpServletResponse.getOutputStream().close(); +// fileInputStream.close(); +// } +// } - List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); - FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); - Map var = new HashMap<>(); - var.put("list", list); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - } + + + /** + * 导出设备列表(长度超范围优化) + */ + @RequestMapping(value = "/listExp") + public void reportExport(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend) throws IOException { + + List list = deviceService.reportExport( projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceExportEnum.DEVICE_EXPORT, res); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 5f92336..d718327 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -37,7 +37,10 @@ List reportExport(String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); String getProjectBydevcode(String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 2e07102..bbf2d3d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -76,11 +76,12 @@ @Override - public List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm) { - List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + public List reportExport( String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = this.baseMapper.reportExport(projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); for (DeviceDto deviceDto : deviceDtoList) { deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index 083caac..50fcc63 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -16,4 +16,7 @@ public interface IAppDeviceLogService extends IService { List getListByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java index fc3d0a4..701ff20 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java @@ -2,13 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.util.PhotoUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.awt.*; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; @@ -58,7 +62,52 @@ } @Override + public String fileUploadMarker(MultipartFile file, String text) throws IOException { + if (!file.isEmpty()) { +// String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String uuid = text.substring(text.indexOf("编号:")+3,text.indexOf("经度:"))+"_"+System.currentTimeMillis(); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + PhotoUtils.markImageByText(text,pathName,pathName,0,new Color(0,0,255),"JPG"); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } + + @Override public String findModeCodeByCode(String devcode) { return this.baseMapper.findModeCodeByCode(devcode); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 22a1665..e42f082 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; @@ -11,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author stylefeng123 @@ -23,7 +25,32 @@ @Override public List getListByCode(String devcode) { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("devcode",devcode); + entityWrapper.eq("devcode", devcode); return this.selectList(entityWrapper); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java new file mode 100644 index 0000000..1db9081 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.util; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; + + +/** + * Created by Administrator on 2015/2/25. + */ +public class PhotoUtils { + /** + * 给图片添加水印文字、可设置水印文字的旋转角度 + * + * @param logoText 要写入的文字 + * @param srcImgPath 源图片路径 + * @param newImagePath 新图片路径 + * @param degree 旋转角度 + * @param color 字体颜色 + * @param formaName 图片后缀 + */ + public static void markImageByText(String logoText, String srcImgPath, String newImagePath, Integer degree, Color color, String formaName) { + InputStream is = null; + OutputStream os = null; + try { + // 1、源图片 + java.awt.Image srcImg = ImageIO.read(new File(srcImgPath)); + BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB); + // 2、得到画笔对象 + Graphics2D g = buffImg.createGraphics(); + // 3、设置对线段的锯齿状边缘处理 + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), java.awt.Image.SCALE_SMOOTH), 0, 0, null); + // 4、设置水印旋转 + if (null != degree) { + g.rotate(Math.toRadians(degree), buffImg.getWidth() / 2, buffImg.getHeight() / 2); + } + // 5、设置水印文字颜色 + g.setColor(color); + // 6、设置水印文字Font + g.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, buffImg.getWidth() / 25)); + // 7、设置水印文字透明度 + g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1f)); + // 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y) + g.drawString(logoText, buffImg.getWidth() / 50, buffImg.getHeight() / 20); + // 9、释放资源 + g.dispose(); + // 10、生成图片 + os = new FileOutputStream(newImagePath); + ImageIO.write(buffImg, formaName, os); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (null != is) + is.close(); + } catch (Exception e) { + e.printStackTrace(); + } + try { + if (null != os) + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index ff8a381..679c266 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; @@ -10,8 +10,8 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dto.DeviceDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.Device; -import com.casic.missiles.modular.system.model.Task; import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -22,9 +22,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -40,7 +37,7 @@ */ @Controller @RequestMapping("/device") -public class DeviceController extends BaseController { +public class DeviceController extends ExportController { @Autowired @@ -158,32 +155,50 @@ /** * 导出设备列表 */ - @RequestMapping(value = "/listExp") - public void reportExport(String projectName, - Long devTypeId, - String devcode, - String pm, - HttpServletRequest httpServletRequest, - HttpServletResponse httpServletResponse) throws IOException { +// @RequestMapping(value = "/listExp") +// public void reportExport(String projectName, Long devTypeId, +// String devcode,String pm, +// String productMode, String contractorNumber,String isSend, +// HttpServletRequest httpServletRequest, +// HttpServletResponse httpServletResponse) throws IOException { +// +// List list = deviceService.reportExport( projectName, +// devTypeId, devcode, pm, productMode, contractorNumber,isSend); +// FileInputStream fileInputStream = new FileInputStream(downloadPath + +// (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); +// try { +// httpServletResponse.setContentType("application/octet-stream"); +// httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); +// Map var = new HashMap<>(); +// var.put("list", list); +// ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); +// } catch (IOException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// httpServletResponse.getOutputStream().flush(); +// httpServletResponse.getOutputStream().close(); +// fileInputStream.close(); +// } +// } - List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); - FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); - Map var = new HashMap<>(); - var.put("list", list); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - } + + + /** + * 导出设备列表(长度超范围优化) + */ + @RequestMapping(value = "/listExp") + public void reportExport(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend) throws IOException { + + List list = deviceService.reportExport( projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceExportEnum.DEVICE_EXPORT, res); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 5f92336..d718327 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -37,7 +37,10 @@ List reportExport(String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); String getProjectBydevcode(String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 2e07102..bbf2d3d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -76,11 +76,12 @@ @Override - public List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm) { - List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + public List reportExport( String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = this.baseMapper.reportExport(projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); for (DeviceDto deviceDto : deviceDtoList) { deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java index 1ce57de..68c37f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -86,7 +86,7 @@ Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -99,8 +99,10 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { productRepairRecords.setDevTypeName(deviceService.getDevTypeBydevcode(productRepairRecords.getDevcode())); productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } } return new SuccessResponseData(super.packForBT(page)); } @@ -280,7 +282,10 @@ row.shutdown(); } }); - productRepairRecordsService.importContract(results); + Map resultMap = productRepairRecordsService.importContract(results); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } } } catch (Exception e) { e.printStackTrace(); @@ -291,21 +296,21 @@ @RequestMapping(value = "/getPhoto") - public void doPost(@RequestParam("id") Long id, HttpServletResponse response,String number) + public void doPost(@RequestParam("id") Long id, HttpServletResponse response, String number) throws ServletException, IOException { ProductRepairRecords repairRecords = productRepairRecordsService.selectById(id); if (ToolUtil.isNotEmpty(repairRecords.getPhotopath1())) { - FileUtil.downloadLocalFile(response,filePath+ repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath3())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index 083caac..50fcc63 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -16,4 +16,7 @@ public interface IAppDeviceLogService extends IService { List getListByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java index fc3d0a4..701ff20 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java @@ -2,13 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.util.PhotoUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.awt.*; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; @@ -58,7 +62,52 @@ } @Override + public String fileUploadMarker(MultipartFile file, String text) throws IOException { + if (!file.isEmpty()) { +// String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String uuid = text.substring(text.indexOf("编号:")+3,text.indexOf("经度:"))+"_"+System.currentTimeMillis(); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + PhotoUtils.markImageByText(text,pathName,pathName,0,new Color(0,0,255),"JPG"); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } + + @Override public String findModeCodeByCode(String devcode) { return this.baseMapper.findModeCodeByCode(devcode); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 22a1665..e42f082 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; @@ -11,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author stylefeng123 @@ -23,7 +25,32 @@ @Override public List getListByCode(String devcode) { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("devcode",devcode); + entityWrapper.eq("devcode", devcode); return this.selectList(entityWrapper); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java new file mode 100644 index 0000000..1db9081 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.util; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; + + +/** + * Created by Administrator on 2015/2/25. + */ +public class PhotoUtils { + /** + * 给图片添加水印文字、可设置水印文字的旋转角度 + * + * @param logoText 要写入的文字 + * @param srcImgPath 源图片路径 + * @param newImagePath 新图片路径 + * @param degree 旋转角度 + * @param color 字体颜色 + * @param formaName 图片后缀 + */ + public static void markImageByText(String logoText, String srcImgPath, String newImagePath, Integer degree, Color color, String formaName) { + InputStream is = null; + OutputStream os = null; + try { + // 1、源图片 + java.awt.Image srcImg = ImageIO.read(new File(srcImgPath)); + BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB); + // 2、得到画笔对象 + Graphics2D g = buffImg.createGraphics(); + // 3、设置对线段的锯齿状边缘处理 + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), java.awt.Image.SCALE_SMOOTH), 0, 0, null); + // 4、设置水印旋转 + if (null != degree) { + g.rotate(Math.toRadians(degree), buffImg.getWidth() / 2, buffImg.getHeight() / 2); + } + // 5、设置水印文字颜色 + g.setColor(color); + // 6、设置水印文字Font + g.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, buffImg.getWidth() / 25)); + // 7、设置水印文字透明度 + g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1f)); + // 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y) + g.drawString(logoText, buffImg.getWidth() / 50, buffImg.getHeight() / 20); + // 9、释放资源 + g.dispose(); + // 10、生成图片 + os = new FileOutputStream(newImagePath); + ImageIO.write(buffImg, formaName, os); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (null != is) + is.close(); + } catch (Exception e) { + e.printStackTrace(); + } + try { + if (null != os) + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index ff8a381..679c266 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; @@ -10,8 +10,8 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dto.DeviceDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.Device; -import com.casic.missiles.modular.system.model.Task; import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -22,9 +22,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -40,7 +37,7 @@ */ @Controller @RequestMapping("/device") -public class DeviceController extends BaseController { +public class DeviceController extends ExportController { @Autowired @@ -158,32 +155,50 @@ /** * 导出设备列表 */ - @RequestMapping(value = "/listExp") - public void reportExport(String projectName, - Long devTypeId, - String devcode, - String pm, - HttpServletRequest httpServletRequest, - HttpServletResponse httpServletResponse) throws IOException { +// @RequestMapping(value = "/listExp") +// public void reportExport(String projectName, Long devTypeId, +// String devcode,String pm, +// String productMode, String contractorNumber,String isSend, +// HttpServletRequest httpServletRequest, +// HttpServletResponse httpServletResponse) throws IOException { +// +// List list = deviceService.reportExport( projectName, +// devTypeId, devcode, pm, productMode, contractorNumber,isSend); +// FileInputStream fileInputStream = new FileInputStream(downloadPath + +// (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); +// try { +// httpServletResponse.setContentType("application/octet-stream"); +// httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); +// Map var = new HashMap<>(); +// var.put("list", list); +// ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); +// } catch (IOException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// httpServletResponse.getOutputStream().flush(); +// httpServletResponse.getOutputStream().close(); +// fileInputStream.close(); +// } +// } - List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); - FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); - Map var = new HashMap<>(); - var.put("list", list); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - } + + + /** + * 导出设备列表(长度超范围优化) + */ + @RequestMapping(value = "/listExp") + public void reportExport(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend) throws IOException { + + List list = deviceService.reportExport( projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceExportEnum.DEVICE_EXPORT, res); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 5f92336..d718327 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -37,7 +37,10 @@ List reportExport(String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); String getProjectBydevcode(String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 2e07102..bbf2d3d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -76,11 +76,12 @@ @Override - public List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm) { - List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + public List reportExport( String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = this.baseMapper.reportExport(projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); for (DeviceDto deviceDto : deviceDtoList) { deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java index 1ce57de..68c37f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -86,7 +86,7 @@ Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -99,8 +99,10 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { productRepairRecords.setDevTypeName(deviceService.getDevTypeBydevcode(productRepairRecords.getDevcode())); productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } } return new SuccessResponseData(super.packForBT(page)); } @@ -280,7 +282,10 @@ row.shutdown(); } }); - productRepairRecordsService.importContract(results); + Map resultMap = productRepairRecordsService.importContract(results); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } } } catch (Exception e) { e.printStackTrace(); @@ -291,21 +296,21 @@ @RequestMapping(value = "/getPhoto") - public void doPost(@RequestParam("id") Long id, HttpServletResponse response,String number) + public void doPost(@RequestParam("id") Long id, HttpServletResponse response, String number) throws ServletException, IOException { ProductRepairRecords repairRecords = productRepairRecordsService.selectById(id); if (ToolUtil.isNotEmpty(repairRecords.getPhotopath1())) { - FileUtil.downloadLocalFile(response,filePath+ repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath3())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java index b1162d7..c1f6792 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import java.util.List; +import java.util.Map; /** *

@@ -15,5 +16,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); - void importContract( List productRepairRecordsList); + Map importContract(List productRepairRecordsList); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index 083caac..50fcc63 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -16,4 +16,7 @@ public interface IAppDeviceLogService extends IService { List getListByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java index fc3d0a4..701ff20 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java @@ -2,13 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.util.PhotoUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.awt.*; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; @@ -58,7 +62,52 @@ } @Override + public String fileUploadMarker(MultipartFile file, String text) throws IOException { + if (!file.isEmpty()) { +// String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String uuid = text.substring(text.indexOf("编号:")+3,text.indexOf("经度:"))+"_"+System.currentTimeMillis(); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + PhotoUtils.markImageByText(text,pathName,pathName,0,new Color(0,0,255),"JPG"); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } + + @Override public String findModeCodeByCode(String devcode) { return this.baseMapper.findModeCodeByCode(devcode); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 22a1665..e42f082 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; @@ -11,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author stylefeng123 @@ -23,7 +25,32 @@ @Override public List getListByCode(String devcode) { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("devcode",devcode); + entityWrapper.eq("devcode", devcode); return this.selectList(entityWrapper); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java new file mode 100644 index 0000000..1db9081 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.util; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; + + +/** + * Created by Administrator on 2015/2/25. + */ +public class PhotoUtils { + /** + * 给图片添加水印文字、可设置水印文字的旋转角度 + * + * @param logoText 要写入的文字 + * @param srcImgPath 源图片路径 + * @param newImagePath 新图片路径 + * @param degree 旋转角度 + * @param color 字体颜色 + * @param formaName 图片后缀 + */ + public static void markImageByText(String logoText, String srcImgPath, String newImagePath, Integer degree, Color color, String formaName) { + InputStream is = null; + OutputStream os = null; + try { + // 1、源图片 + java.awt.Image srcImg = ImageIO.read(new File(srcImgPath)); + BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB); + // 2、得到画笔对象 + Graphics2D g = buffImg.createGraphics(); + // 3、设置对线段的锯齿状边缘处理 + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), java.awt.Image.SCALE_SMOOTH), 0, 0, null); + // 4、设置水印旋转 + if (null != degree) { + g.rotate(Math.toRadians(degree), buffImg.getWidth() / 2, buffImg.getHeight() / 2); + } + // 5、设置水印文字颜色 + g.setColor(color); + // 6、设置水印文字Font + g.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, buffImg.getWidth() / 25)); + // 7、设置水印文字透明度 + g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1f)); + // 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y) + g.drawString(logoText, buffImg.getWidth() / 50, buffImg.getHeight() / 20); + // 9、释放资源 + g.dispose(); + // 10、生成图片 + os = new FileOutputStream(newImagePath); + ImageIO.write(buffImg, formaName, os); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (null != is) + is.close(); + } catch (Exception e) { + e.printStackTrace(); + } + try { + if (null != os) + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index ff8a381..679c266 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; @@ -10,8 +10,8 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dto.DeviceDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.Device; -import com.casic.missiles.modular.system.model.Task; import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -22,9 +22,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -40,7 +37,7 @@ */ @Controller @RequestMapping("/device") -public class DeviceController extends BaseController { +public class DeviceController extends ExportController { @Autowired @@ -158,32 +155,50 @@ /** * 导出设备列表 */ - @RequestMapping(value = "/listExp") - public void reportExport(String projectName, - Long devTypeId, - String devcode, - String pm, - HttpServletRequest httpServletRequest, - HttpServletResponse httpServletResponse) throws IOException { +// @RequestMapping(value = "/listExp") +// public void reportExport(String projectName, Long devTypeId, +// String devcode,String pm, +// String productMode, String contractorNumber,String isSend, +// HttpServletRequest httpServletRequest, +// HttpServletResponse httpServletResponse) throws IOException { +// +// List list = deviceService.reportExport( projectName, +// devTypeId, devcode, pm, productMode, contractorNumber,isSend); +// FileInputStream fileInputStream = new FileInputStream(downloadPath + +// (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); +// try { +// httpServletResponse.setContentType("application/octet-stream"); +// httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); +// Map var = new HashMap<>(); +// var.put("list", list); +// ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); +// } catch (IOException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// httpServletResponse.getOutputStream().flush(); +// httpServletResponse.getOutputStream().close(); +// fileInputStream.close(); +// } +// } - List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); - FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); - Map var = new HashMap<>(); - var.put("list", list); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - } + + + /** + * 导出设备列表(长度超范围优化) + */ + @RequestMapping(value = "/listExp") + public void reportExport(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend) throws IOException { + + List list = deviceService.reportExport( projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceExportEnum.DEVICE_EXPORT, res); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 5f92336..d718327 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -37,7 +37,10 @@ List reportExport(String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); String getProjectBydevcode(String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 2e07102..bbf2d3d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -76,11 +76,12 @@ @Override - public List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm) { - List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + public List reportExport( String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = this.baseMapper.reportExport(projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); for (DeviceDto deviceDto : deviceDtoList) { deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java index 1ce57de..68c37f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -86,7 +86,7 @@ Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -99,8 +99,10 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { productRepairRecords.setDevTypeName(deviceService.getDevTypeBydevcode(productRepairRecords.getDevcode())); productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } } return new SuccessResponseData(super.packForBT(page)); } @@ -280,7 +282,10 @@ row.shutdown(); } }); - productRepairRecordsService.importContract(results); + Map resultMap = productRepairRecordsService.importContract(results); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } } } catch (Exception e) { e.printStackTrace(); @@ -291,21 +296,21 @@ @RequestMapping(value = "/getPhoto") - public void doPost(@RequestParam("id") Long id, HttpServletResponse response,String number) + public void doPost(@RequestParam("id") Long id, HttpServletResponse response, String number) throws ServletException, IOException { ProductRepairRecords repairRecords = productRepairRecordsService.selectById(id); if (ToolUtil.isNotEmpty(repairRecords.getPhotopath1())) { - FileUtil.downloadLocalFile(response,filePath+ repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath3())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java index b1162d7..c1f6792 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import java.util.List; +import java.util.Map; /** *

@@ -15,5 +16,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); - void importContract( List productRepairRecordsList); + Map importContract(List productRepairRecordsList); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java index 4095754..add13aa 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -16,9 +16,13 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.sql.Timestamp; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** *

@@ -44,7 +48,7 @@ public List reportExport(String devcode, String begTime, String endTime) { EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -56,32 +60,57 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + + if (ToolUtil.isNotEmpty(productRepairRecords.getReturntime())) { + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(), "yyyy-MM-dd HH:mm:ss")); + } } return productRepairRecordsList; } - @Override - public void importContract(List productRepairRecordsList) { + @Transactional + public Map importContract(List productRepairRecordsList) { + + Map resultMap = new HashMap<>(); + //验证设备编号是否存在 +// for (ProductRepairRecords repairRecords : productRepairRecordsList) { +// if (null == deviceService.getDeviceByCode(repairRecords.getDevcode())) { +// String msg = "编号:" + repairRecords.getDevcode() + "在系统中不存在"; +// boolean success = false; +// resultMap.put("msg", msg); +// resultMap.put("success", success); +// return resultMap; +// } +// } productRepairRecordsList.forEach(repairRecords -> { - if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + if (ToolUtil.isNotEmpty(repairRecords.getCheckName())) { Account user = accountService.findUserByName(repairRecords.getCheckName()); - repairRecords.setCheckmanId(user!=null?user.getId():null); + repairRecords.setCheckmanId(user != null ? user.getId() : null); } - if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + if (ToolUtil.isNotEmpty(repairRecords.getRepairName())) { Account user = accountService.findUserByName(repairRecords.getRepairName()); - repairRecords.setRepairmenId(user!=null?user.getId():null); + repairRecords.setRepairmenId(user != null ? user.getId() : null); } - repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? - Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); - repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? - Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + try { + repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? + Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); + repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? + Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + }catch (Exception e){ + System.out.println("日期格式不对编号:"+repairRecords.getDevcode()); + e.printStackTrace(); + } + }); this.insertBatch(productRepairRecordsList); + resultMap.put("success", true); + return resultMap; } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index 083caac..50fcc63 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -16,4 +16,7 @@ public interface IAppDeviceLogService extends IService { List getListByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java index fc3d0a4..701ff20 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java @@ -2,13 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.util.PhotoUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.awt.*; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; @@ -58,7 +62,52 @@ } @Override + public String fileUploadMarker(MultipartFile file, String text) throws IOException { + if (!file.isEmpty()) { +// String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String uuid = text.substring(text.indexOf("编号:")+3,text.indexOf("经度:"))+"_"+System.currentTimeMillis(); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + PhotoUtils.markImageByText(text,pathName,pathName,0,new Color(0,0,255),"JPG"); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } + + @Override public String findModeCodeByCode(String devcode) { return this.baseMapper.findModeCodeByCode(devcode); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 22a1665..e42f082 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; @@ -11,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author stylefeng123 @@ -23,7 +25,32 @@ @Override public List getListByCode(String devcode) { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("devcode",devcode); + entityWrapper.eq("devcode", devcode); return this.selectList(entityWrapper); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java new file mode 100644 index 0000000..1db9081 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.util; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; + + +/** + * Created by Administrator on 2015/2/25. + */ +public class PhotoUtils { + /** + * 给图片添加水印文字、可设置水印文字的旋转角度 + * + * @param logoText 要写入的文字 + * @param srcImgPath 源图片路径 + * @param newImagePath 新图片路径 + * @param degree 旋转角度 + * @param color 字体颜色 + * @param formaName 图片后缀 + */ + public static void markImageByText(String logoText, String srcImgPath, String newImagePath, Integer degree, Color color, String formaName) { + InputStream is = null; + OutputStream os = null; + try { + // 1、源图片 + java.awt.Image srcImg = ImageIO.read(new File(srcImgPath)); + BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB); + // 2、得到画笔对象 + Graphics2D g = buffImg.createGraphics(); + // 3、设置对线段的锯齿状边缘处理 + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), java.awt.Image.SCALE_SMOOTH), 0, 0, null); + // 4、设置水印旋转 + if (null != degree) { + g.rotate(Math.toRadians(degree), buffImg.getWidth() / 2, buffImg.getHeight() / 2); + } + // 5、设置水印文字颜色 + g.setColor(color); + // 6、设置水印文字Font + g.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, buffImg.getWidth() / 25)); + // 7、设置水印文字透明度 + g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1f)); + // 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y) + g.drawString(logoText, buffImg.getWidth() / 50, buffImg.getHeight() / 20); + // 9、释放资源 + g.dispose(); + // 10、生成图片 + os = new FileOutputStream(newImagePath); + ImageIO.write(buffImg, formaName, os); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (null != is) + is.close(); + } catch (Exception e) { + e.printStackTrace(); + } + try { + if (null != os) + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index ff8a381..679c266 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; @@ -10,8 +10,8 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dto.DeviceDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.Device; -import com.casic.missiles.modular.system.model.Task; import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -22,9 +22,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -40,7 +37,7 @@ */ @Controller @RequestMapping("/device") -public class DeviceController extends BaseController { +public class DeviceController extends ExportController { @Autowired @@ -158,32 +155,50 @@ /** * 导出设备列表 */ - @RequestMapping(value = "/listExp") - public void reportExport(String projectName, - Long devTypeId, - String devcode, - String pm, - HttpServletRequest httpServletRequest, - HttpServletResponse httpServletResponse) throws IOException { +// @RequestMapping(value = "/listExp") +// public void reportExport(String projectName, Long devTypeId, +// String devcode,String pm, +// String productMode, String contractorNumber,String isSend, +// HttpServletRequest httpServletRequest, +// HttpServletResponse httpServletResponse) throws IOException { +// +// List list = deviceService.reportExport( projectName, +// devTypeId, devcode, pm, productMode, contractorNumber,isSend); +// FileInputStream fileInputStream = new FileInputStream(downloadPath + +// (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); +// try { +// httpServletResponse.setContentType("application/octet-stream"); +// httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); +// Map var = new HashMap<>(); +// var.put("list", list); +// ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); +// } catch (IOException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// httpServletResponse.getOutputStream().flush(); +// httpServletResponse.getOutputStream().close(); +// fileInputStream.close(); +// } +// } - List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); - FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); - Map var = new HashMap<>(); - var.put("list", list); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - } + + + /** + * 导出设备列表(长度超范围优化) + */ + @RequestMapping(value = "/listExp") + public void reportExport(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend) throws IOException { + + List list = deviceService.reportExport( projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceExportEnum.DEVICE_EXPORT, res); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 5f92336..d718327 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -37,7 +37,10 @@ List reportExport(String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); String getProjectBydevcode(String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 2e07102..bbf2d3d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -76,11 +76,12 @@ @Override - public List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm) { - List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + public List reportExport( String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = this.baseMapper.reportExport(projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); for (DeviceDto deviceDto : deviceDtoList) { deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java index 1ce57de..68c37f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -86,7 +86,7 @@ Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -99,8 +99,10 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { productRepairRecords.setDevTypeName(deviceService.getDevTypeBydevcode(productRepairRecords.getDevcode())); productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } } return new SuccessResponseData(super.packForBT(page)); } @@ -280,7 +282,10 @@ row.shutdown(); } }); - productRepairRecordsService.importContract(results); + Map resultMap = productRepairRecordsService.importContract(results); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } } } catch (Exception e) { e.printStackTrace(); @@ -291,21 +296,21 @@ @RequestMapping(value = "/getPhoto") - public void doPost(@RequestParam("id") Long id, HttpServletResponse response,String number) + public void doPost(@RequestParam("id") Long id, HttpServletResponse response, String number) throws ServletException, IOException { ProductRepairRecords repairRecords = productRepairRecordsService.selectById(id); if (ToolUtil.isNotEmpty(repairRecords.getPhotopath1())) { - FileUtil.downloadLocalFile(response,filePath+ repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath3())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java index b1162d7..c1f6792 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import java.util.List; +import java.util.Map; /** *

@@ -15,5 +16,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); - void importContract( List productRepairRecordsList); + Map importContract(List productRepairRecordsList); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java index 4095754..add13aa 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -16,9 +16,13 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.sql.Timestamp; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** *

@@ -44,7 +48,7 @@ public List reportExport(String devcode, String begTime, String endTime) { EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -56,32 +60,57 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + + if (ToolUtil.isNotEmpty(productRepairRecords.getReturntime())) { + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(), "yyyy-MM-dd HH:mm:ss")); + } } return productRepairRecordsList; } - @Override - public void importContract(List productRepairRecordsList) { + @Transactional + public Map importContract(List productRepairRecordsList) { + + Map resultMap = new HashMap<>(); + //验证设备编号是否存在 +// for (ProductRepairRecords repairRecords : productRepairRecordsList) { +// if (null == deviceService.getDeviceByCode(repairRecords.getDevcode())) { +// String msg = "编号:" + repairRecords.getDevcode() + "在系统中不存在"; +// boolean success = false; +// resultMap.put("msg", msg); +// resultMap.put("success", success); +// return resultMap; +// } +// } productRepairRecordsList.forEach(repairRecords -> { - if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + if (ToolUtil.isNotEmpty(repairRecords.getCheckName())) { Account user = accountService.findUserByName(repairRecords.getCheckName()); - repairRecords.setCheckmanId(user!=null?user.getId():null); + repairRecords.setCheckmanId(user != null ? user.getId() : null); } - if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + if (ToolUtil.isNotEmpty(repairRecords.getRepairName())) { Account user = accountService.findUserByName(repairRecords.getRepairName()); - repairRecords.setRepairmenId(user!=null?user.getId():null); + repairRecords.setRepairmenId(user != null ? user.getId() : null); } - repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? - Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); - repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? - Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + try { + repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? + Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); + repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? + Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + }catch (Exception e){ + System.out.println("日期格式不对编号:"+repairRecords.getDevcode()); + e.printStackTrace(); + } + }); this.insertBatch(productRepairRecordsList); + resultMap.put("success", true); + return resultMap; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java index dd04612..df91064 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -77,6 +77,7 @@ entityWrapper.eq("pro_id", payments.getProId()); entityWrapper.eq("reorder", payments.getReorder()); paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? DateUtil.parseTime(paytimeFmt) : null); paymentsService.insert(payments); diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index 083caac..50fcc63 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -16,4 +16,7 @@ public interface IAppDeviceLogService extends IService { List getListByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java index fc3d0a4..701ff20 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java @@ -2,13 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.util.PhotoUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.awt.*; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; @@ -58,7 +62,52 @@ } @Override + public String fileUploadMarker(MultipartFile file, String text) throws IOException { + if (!file.isEmpty()) { +// String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String uuid = text.substring(text.indexOf("编号:")+3,text.indexOf("经度:"))+"_"+System.currentTimeMillis(); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + PhotoUtils.markImageByText(text,pathName,pathName,0,new Color(0,0,255),"JPG"); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } + + @Override public String findModeCodeByCode(String devcode) { return this.baseMapper.findModeCodeByCode(devcode); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 22a1665..e42f082 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; @@ -11,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author stylefeng123 @@ -23,7 +25,32 @@ @Override public List getListByCode(String devcode) { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("devcode",devcode); + entityWrapper.eq("devcode", devcode); return this.selectList(entityWrapper); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java new file mode 100644 index 0000000..1db9081 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.util; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; + + +/** + * Created by Administrator on 2015/2/25. + */ +public class PhotoUtils { + /** + * 给图片添加水印文字、可设置水印文字的旋转角度 + * + * @param logoText 要写入的文字 + * @param srcImgPath 源图片路径 + * @param newImagePath 新图片路径 + * @param degree 旋转角度 + * @param color 字体颜色 + * @param formaName 图片后缀 + */ + public static void markImageByText(String logoText, String srcImgPath, String newImagePath, Integer degree, Color color, String formaName) { + InputStream is = null; + OutputStream os = null; + try { + // 1、源图片 + java.awt.Image srcImg = ImageIO.read(new File(srcImgPath)); + BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB); + // 2、得到画笔对象 + Graphics2D g = buffImg.createGraphics(); + // 3、设置对线段的锯齿状边缘处理 + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), java.awt.Image.SCALE_SMOOTH), 0, 0, null); + // 4、设置水印旋转 + if (null != degree) { + g.rotate(Math.toRadians(degree), buffImg.getWidth() / 2, buffImg.getHeight() / 2); + } + // 5、设置水印文字颜色 + g.setColor(color); + // 6、设置水印文字Font + g.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, buffImg.getWidth() / 25)); + // 7、设置水印文字透明度 + g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1f)); + // 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y) + g.drawString(logoText, buffImg.getWidth() / 50, buffImg.getHeight() / 20); + // 9、释放资源 + g.dispose(); + // 10、生成图片 + os = new FileOutputStream(newImagePath); + ImageIO.write(buffImg, formaName, os); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (null != is) + is.close(); + } catch (Exception e) { + e.printStackTrace(); + } + try { + if (null != os) + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index ff8a381..679c266 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; @@ -10,8 +10,8 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dto.DeviceDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.Device; -import com.casic.missiles.modular.system.model.Task; import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -22,9 +22,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -40,7 +37,7 @@ */ @Controller @RequestMapping("/device") -public class DeviceController extends BaseController { +public class DeviceController extends ExportController { @Autowired @@ -158,32 +155,50 @@ /** * 导出设备列表 */ - @RequestMapping(value = "/listExp") - public void reportExport(String projectName, - Long devTypeId, - String devcode, - String pm, - HttpServletRequest httpServletRequest, - HttpServletResponse httpServletResponse) throws IOException { +// @RequestMapping(value = "/listExp") +// public void reportExport(String projectName, Long devTypeId, +// String devcode,String pm, +// String productMode, String contractorNumber,String isSend, +// HttpServletRequest httpServletRequest, +// HttpServletResponse httpServletResponse) throws IOException { +// +// List list = deviceService.reportExport( projectName, +// devTypeId, devcode, pm, productMode, contractorNumber,isSend); +// FileInputStream fileInputStream = new FileInputStream(downloadPath + +// (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); +// try { +// httpServletResponse.setContentType("application/octet-stream"); +// httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); +// Map var = new HashMap<>(); +// var.put("list", list); +// ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); +// } catch (IOException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// httpServletResponse.getOutputStream().flush(); +// httpServletResponse.getOutputStream().close(); +// fileInputStream.close(); +// } +// } - List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); - FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); - Map var = new HashMap<>(); - var.put("list", list); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - } + + + /** + * 导出设备列表(长度超范围优化) + */ + @RequestMapping(value = "/listExp") + public void reportExport(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend) throws IOException { + + List list = deviceService.reportExport( projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceExportEnum.DEVICE_EXPORT, res); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 5f92336..d718327 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -37,7 +37,10 @@ List reportExport(String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); String getProjectBydevcode(String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 2e07102..bbf2d3d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -76,11 +76,12 @@ @Override - public List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm) { - List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + public List reportExport( String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = this.baseMapper.reportExport(projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); for (DeviceDto deviceDto : deviceDtoList) { deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java index 1ce57de..68c37f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -86,7 +86,7 @@ Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -99,8 +99,10 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { productRepairRecords.setDevTypeName(deviceService.getDevTypeBydevcode(productRepairRecords.getDevcode())); productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } } return new SuccessResponseData(super.packForBT(page)); } @@ -280,7 +282,10 @@ row.shutdown(); } }); - productRepairRecordsService.importContract(results); + Map resultMap = productRepairRecordsService.importContract(results); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } } } catch (Exception e) { e.printStackTrace(); @@ -291,21 +296,21 @@ @RequestMapping(value = "/getPhoto") - public void doPost(@RequestParam("id") Long id, HttpServletResponse response,String number) + public void doPost(@RequestParam("id") Long id, HttpServletResponse response, String number) throws ServletException, IOException { ProductRepairRecords repairRecords = productRepairRecordsService.selectById(id); if (ToolUtil.isNotEmpty(repairRecords.getPhotopath1())) { - FileUtil.downloadLocalFile(response,filePath+ repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath3())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java index b1162d7..c1f6792 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import java.util.List; +import java.util.Map; /** *

@@ -15,5 +16,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); - void importContract( List productRepairRecordsList); + Map importContract(List productRepairRecordsList); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java index 4095754..add13aa 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -16,9 +16,13 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.sql.Timestamp; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** *

@@ -44,7 +48,7 @@ public List reportExport(String devcode, String begTime, String endTime) { EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -56,32 +60,57 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + + if (ToolUtil.isNotEmpty(productRepairRecords.getReturntime())) { + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(), "yyyy-MM-dd HH:mm:ss")); + } } return productRepairRecordsList; } - @Override - public void importContract(List productRepairRecordsList) { + @Transactional + public Map importContract(List productRepairRecordsList) { + + Map resultMap = new HashMap<>(); + //验证设备编号是否存在 +// for (ProductRepairRecords repairRecords : productRepairRecordsList) { +// if (null == deviceService.getDeviceByCode(repairRecords.getDevcode())) { +// String msg = "编号:" + repairRecords.getDevcode() + "在系统中不存在"; +// boolean success = false; +// resultMap.put("msg", msg); +// resultMap.put("success", success); +// return resultMap; +// } +// } productRepairRecordsList.forEach(repairRecords -> { - if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + if (ToolUtil.isNotEmpty(repairRecords.getCheckName())) { Account user = accountService.findUserByName(repairRecords.getCheckName()); - repairRecords.setCheckmanId(user!=null?user.getId():null); + repairRecords.setCheckmanId(user != null ? user.getId() : null); } - if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + if (ToolUtil.isNotEmpty(repairRecords.getRepairName())) { Account user = accountService.findUserByName(repairRecords.getRepairName()); - repairRecords.setRepairmenId(user!=null?user.getId():null); + repairRecords.setRepairmenId(user != null ? user.getId() : null); } - repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? - Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); - repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? - Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + try { + repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? + Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); + repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? + Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + }catch (Exception e){ + System.out.println("日期格式不对编号:"+repairRecords.getDevcode()); + e.printStackTrace(); + } + }); this.insertBatch(productRepairRecordsList); + resultMap.put("success", true); + return resultMap; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java index dd04612..df91064 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -77,6 +77,7 @@ entityWrapper.eq("pro_id", payments.getProId()); entityWrapper.eq("reorder", payments.getReorder()); paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? DateUtil.parseTime(paytimeFmt) : null); paymentsService.insert(payments); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 0ca769c..6e52fd2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -29,7 +29,10 @@ List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, @Param("devcode") String devcode, - @Param("pm") String pm); + @Param("pm") String pm, + @Param("productMode") String productMode, + @Param("contractorNumber") String contractorNumber, + @Param("isSend") String isSend); String getProjectBydevcode(@Param("devcode") String devcode); diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index 083caac..50fcc63 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -16,4 +16,7 @@ public interface IAppDeviceLogService extends IService { List getListByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java index fc3d0a4..701ff20 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java @@ -2,13 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.util.PhotoUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.awt.*; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; @@ -58,7 +62,52 @@ } @Override + public String fileUploadMarker(MultipartFile file, String text) throws IOException { + if (!file.isEmpty()) { +// String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String uuid = text.substring(text.indexOf("编号:")+3,text.indexOf("经度:"))+"_"+System.currentTimeMillis(); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + PhotoUtils.markImageByText(text,pathName,pathName,0,new Color(0,0,255),"JPG"); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } + + @Override public String findModeCodeByCode(String devcode) { return this.baseMapper.findModeCodeByCode(devcode); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 22a1665..e42f082 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; @@ -11,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author stylefeng123 @@ -23,7 +25,32 @@ @Override public List getListByCode(String devcode) { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("devcode",devcode); + entityWrapper.eq("devcode", devcode); return this.selectList(entityWrapper); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java new file mode 100644 index 0000000..1db9081 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.util; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; + + +/** + * Created by Administrator on 2015/2/25. + */ +public class PhotoUtils { + /** + * 给图片添加水印文字、可设置水印文字的旋转角度 + * + * @param logoText 要写入的文字 + * @param srcImgPath 源图片路径 + * @param newImagePath 新图片路径 + * @param degree 旋转角度 + * @param color 字体颜色 + * @param formaName 图片后缀 + */ + public static void markImageByText(String logoText, String srcImgPath, String newImagePath, Integer degree, Color color, String formaName) { + InputStream is = null; + OutputStream os = null; + try { + // 1、源图片 + java.awt.Image srcImg = ImageIO.read(new File(srcImgPath)); + BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB); + // 2、得到画笔对象 + Graphics2D g = buffImg.createGraphics(); + // 3、设置对线段的锯齿状边缘处理 + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), java.awt.Image.SCALE_SMOOTH), 0, 0, null); + // 4、设置水印旋转 + if (null != degree) { + g.rotate(Math.toRadians(degree), buffImg.getWidth() / 2, buffImg.getHeight() / 2); + } + // 5、设置水印文字颜色 + g.setColor(color); + // 6、设置水印文字Font + g.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, buffImg.getWidth() / 25)); + // 7、设置水印文字透明度 + g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1f)); + // 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y) + g.drawString(logoText, buffImg.getWidth() / 50, buffImg.getHeight() / 20); + // 9、释放资源 + g.dispose(); + // 10、生成图片 + os = new FileOutputStream(newImagePath); + ImageIO.write(buffImg, formaName, os); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (null != is) + is.close(); + } catch (Exception e) { + e.printStackTrace(); + } + try { + if (null != os) + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index ff8a381..679c266 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; @@ -10,8 +10,8 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dto.DeviceDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.Device; -import com.casic.missiles.modular.system.model.Task; import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -22,9 +22,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -40,7 +37,7 @@ */ @Controller @RequestMapping("/device") -public class DeviceController extends BaseController { +public class DeviceController extends ExportController { @Autowired @@ -158,32 +155,50 @@ /** * 导出设备列表 */ - @RequestMapping(value = "/listExp") - public void reportExport(String projectName, - Long devTypeId, - String devcode, - String pm, - HttpServletRequest httpServletRequest, - HttpServletResponse httpServletResponse) throws IOException { +// @RequestMapping(value = "/listExp") +// public void reportExport(String projectName, Long devTypeId, +// String devcode,String pm, +// String productMode, String contractorNumber,String isSend, +// HttpServletRequest httpServletRequest, +// HttpServletResponse httpServletResponse) throws IOException { +// +// List list = deviceService.reportExport( projectName, +// devTypeId, devcode, pm, productMode, contractorNumber,isSend); +// FileInputStream fileInputStream = new FileInputStream(downloadPath + +// (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); +// try { +// httpServletResponse.setContentType("application/octet-stream"); +// httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); +// Map var = new HashMap<>(); +// var.put("list", list); +// ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); +// } catch (IOException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// httpServletResponse.getOutputStream().flush(); +// httpServletResponse.getOutputStream().close(); +// fileInputStream.close(); +// } +// } - List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); - FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); - Map var = new HashMap<>(); - var.put("list", list); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - } + + + /** + * 导出设备列表(长度超范围优化) + */ + @RequestMapping(value = "/listExp") + public void reportExport(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend) throws IOException { + + List list = deviceService.reportExport( projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceExportEnum.DEVICE_EXPORT, res); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 5f92336..d718327 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -37,7 +37,10 @@ List reportExport(String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); String getProjectBydevcode(String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 2e07102..bbf2d3d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -76,11 +76,12 @@ @Override - public List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm) { - List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + public List reportExport( String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = this.baseMapper.reportExport(projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); for (DeviceDto deviceDto : deviceDtoList) { deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java index 1ce57de..68c37f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -86,7 +86,7 @@ Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -99,8 +99,10 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { productRepairRecords.setDevTypeName(deviceService.getDevTypeBydevcode(productRepairRecords.getDevcode())); productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } } return new SuccessResponseData(super.packForBT(page)); } @@ -280,7 +282,10 @@ row.shutdown(); } }); - productRepairRecordsService.importContract(results); + Map resultMap = productRepairRecordsService.importContract(results); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } } } catch (Exception e) { e.printStackTrace(); @@ -291,21 +296,21 @@ @RequestMapping(value = "/getPhoto") - public void doPost(@RequestParam("id") Long id, HttpServletResponse response,String number) + public void doPost(@RequestParam("id") Long id, HttpServletResponse response, String number) throws ServletException, IOException { ProductRepairRecords repairRecords = productRepairRecordsService.selectById(id); if (ToolUtil.isNotEmpty(repairRecords.getPhotopath1())) { - FileUtil.downloadLocalFile(response,filePath+ repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath3())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java index b1162d7..c1f6792 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import java.util.List; +import java.util.Map; /** *

@@ -15,5 +16,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); - void importContract( List productRepairRecordsList); + Map importContract(List productRepairRecordsList); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java index 4095754..add13aa 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -16,9 +16,13 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.sql.Timestamp; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** *

@@ -44,7 +48,7 @@ public List reportExport(String devcode, String begTime, String endTime) { EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -56,32 +60,57 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + + if (ToolUtil.isNotEmpty(productRepairRecords.getReturntime())) { + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(), "yyyy-MM-dd HH:mm:ss")); + } } return productRepairRecordsList; } - @Override - public void importContract(List productRepairRecordsList) { + @Transactional + public Map importContract(List productRepairRecordsList) { + + Map resultMap = new HashMap<>(); + //验证设备编号是否存在 +// for (ProductRepairRecords repairRecords : productRepairRecordsList) { +// if (null == deviceService.getDeviceByCode(repairRecords.getDevcode())) { +// String msg = "编号:" + repairRecords.getDevcode() + "在系统中不存在"; +// boolean success = false; +// resultMap.put("msg", msg); +// resultMap.put("success", success); +// return resultMap; +// } +// } productRepairRecordsList.forEach(repairRecords -> { - if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + if (ToolUtil.isNotEmpty(repairRecords.getCheckName())) { Account user = accountService.findUserByName(repairRecords.getCheckName()); - repairRecords.setCheckmanId(user!=null?user.getId():null); + repairRecords.setCheckmanId(user != null ? user.getId() : null); } - if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + if (ToolUtil.isNotEmpty(repairRecords.getRepairName())) { Account user = accountService.findUserByName(repairRecords.getRepairName()); - repairRecords.setRepairmenId(user!=null?user.getId():null); + repairRecords.setRepairmenId(user != null ? user.getId() : null); } - repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? - Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); - repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? - Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + try { + repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? + Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); + repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? + Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + }catch (Exception e){ + System.out.println("日期格式不对编号:"+repairRecords.getDevcode()); + e.printStackTrace(); + } + }); this.insertBatch(productRepairRecordsList); + resultMap.put("success", true); + return resultMap; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java index dd04612..df91064 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -77,6 +77,7 @@ entityWrapper.eq("pro_id", payments.getProId()); entityWrapper.eq("reorder", payments.getReorder()); paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? DateUtil.parseTime(paytimeFmt) : null); paymentsService.insert(payments); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 0ca769c..6e52fd2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -29,7 +29,10 @@ List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, @Param("devcode") String devcode, - @Param("pm") String pm); + @Param("pm") String pm, + @Param("productMode") String productMode, + @Param("contractorNumber") String contractorNumber, + @Param("isSend") String isSend); String getProjectBydevcode(@Param("devcode") String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 7c11b75..ef58eb2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -29,15 +29,15 @@ FROM product_contract w WHERE 1=1 - and w.contract_factory like #{keyword1} + and w.contract_factory like '%${keyword1}%' - and w.contract_number like #{keyword3} + and w.contract_number like '%${keyword3}%' - and w.principal like #{name} + and w.principal like '%${name}%' diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index 083caac..50fcc63 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -16,4 +16,7 @@ public interface IAppDeviceLogService extends IService { List getListByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java index fc3d0a4..701ff20 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java @@ -2,13 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.util.PhotoUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.awt.*; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; @@ -58,7 +62,52 @@ } @Override + public String fileUploadMarker(MultipartFile file, String text) throws IOException { + if (!file.isEmpty()) { +// String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String uuid = text.substring(text.indexOf("编号:")+3,text.indexOf("经度:"))+"_"+System.currentTimeMillis(); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + PhotoUtils.markImageByText(text,pathName,pathName,0,new Color(0,0,255),"JPG"); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } + + @Override public String findModeCodeByCode(String devcode) { return this.baseMapper.findModeCodeByCode(devcode); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 22a1665..e42f082 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; @@ -11,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author stylefeng123 @@ -23,7 +25,32 @@ @Override public List getListByCode(String devcode) { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("devcode",devcode); + entityWrapper.eq("devcode", devcode); return this.selectList(entityWrapper); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java new file mode 100644 index 0000000..1db9081 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.util; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; + + +/** + * Created by Administrator on 2015/2/25. + */ +public class PhotoUtils { + /** + * 给图片添加水印文字、可设置水印文字的旋转角度 + * + * @param logoText 要写入的文字 + * @param srcImgPath 源图片路径 + * @param newImagePath 新图片路径 + * @param degree 旋转角度 + * @param color 字体颜色 + * @param formaName 图片后缀 + */ + public static void markImageByText(String logoText, String srcImgPath, String newImagePath, Integer degree, Color color, String formaName) { + InputStream is = null; + OutputStream os = null; + try { + // 1、源图片 + java.awt.Image srcImg = ImageIO.read(new File(srcImgPath)); + BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB); + // 2、得到画笔对象 + Graphics2D g = buffImg.createGraphics(); + // 3、设置对线段的锯齿状边缘处理 + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), java.awt.Image.SCALE_SMOOTH), 0, 0, null); + // 4、设置水印旋转 + if (null != degree) { + g.rotate(Math.toRadians(degree), buffImg.getWidth() / 2, buffImg.getHeight() / 2); + } + // 5、设置水印文字颜色 + g.setColor(color); + // 6、设置水印文字Font + g.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, buffImg.getWidth() / 25)); + // 7、设置水印文字透明度 + g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1f)); + // 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y) + g.drawString(logoText, buffImg.getWidth() / 50, buffImg.getHeight() / 20); + // 9、释放资源 + g.dispose(); + // 10、生成图片 + os = new FileOutputStream(newImagePath); + ImageIO.write(buffImg, formaName, os); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (null != is) + is.close(); + } catch (Exception e) { + e.printStackTrace(); + } + try { + if (null != os) + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index ff8a381..679c266 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; @@ -10,8 +10,8 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dto.DeviceDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.Device; -import com.casic.missiles.modular.system.model.Task; import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -22,9 +22,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -40,7 +37,7 @@ */ @Controller @RequestMapping("/device") -public class DeviceController extends BaseController { +public class DeviceController extends ExportController { @Autowired @@ -158,32 +155,50 @@ /** * 导出设备列表 */ - @RequestMapping(value = "/listExp") - public void reportExport(String projectName, - Long devTypeId, - String devcode, - String pm, - HttpServletRequest httpServletRequest, - HttpServletResponse httpServletResponse) throws IOException { +// @RequestMapping(value = "/listExp") +// public void reportExport(String projectName, Long devTypeId, +// String devcode,String pm, +// String productMode, String contractorNumber,String isSend, +// HttpServletRequest httpServletRequest, +// HttpServletResponse httpServletResponse) throws IOException { +// +// List list = deviceService.reportExport( projectName, +// devTypeId, devcode, pm, productMode, contractorNumber,isSend); +// FileInputStream fileInputStream = new FileInputStream(downloadPath + +// (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); +// try { +// httpServletResponse.setContentType("application/octet-stream"); +// httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); +// Map var = new HashMap<>(); +// var.put("list", list); +// ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); +// } catch (IOException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// httpServletResponse.getOutputStream().flush(); +// httpServletResponse.getOutputStream().close(); +// fileInputStream.close(); +// } +// } - List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); - FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); - Map var = new HashMap<>(); - var.put("list", list); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - } + + + /** + * 导出设备列表(长度超范围优化) + */ + @RequestMapping(value = "/listExp") + public void reportExport(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend) throws IOException { + + List list = deviceService.reportExport( projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceExportEnum.DEVICE_EXPORT, res); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 5f92336..d718327 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -37,7 +37,10 @@ List reportExport(String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); String getProjectBydevcode(String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 2e07102..bbf2d3d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -76,11 +76,12 @@ @Override - public List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm) { - List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + public List reportExport( String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = this.baseMapper.reportExport(projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); for (DeviceDto deviceDto : deviceDtoList) { deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java index 1ce57de..68c37f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -86,7 +86,7 @@ Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -99,8 +99,10 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { productRepairRecords.setDevTypeName(deviceService.getDevTypeBydevcode(productRepairRecords.getDevcode())); productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } } return new SuccessResponseData(super.packForBT(page)); } @@ -280,7 +282,10 @@ row.shutdown(); } }); - productRepairRecordsService.importContract(results); + Map resultMap = productRepairRecordsService.importContract(results); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } } } catch (Exception e) { e.printStackTrace(); @@ -291,21 +296,21 @@ @RequestMapping(value = "/getPhoto") - public void doPost(@RequestParam("id") Long id, HttpServletResponse response,String number) + public void doPost(@RequestParam("id") Long id, HttpServletResponse response, String number) throws ServletException, IOException { ProductRepairRecords repairRecords = productRepairRecordsService.selectById(id); if (ToolUtil.isNotEmpty(repairRecords.getPhotopath1())) { - FileUtil.downloadLocalFile(response,filePath+ repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath3())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java index b1162d7..c1f6792 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import java.util.List; +import java.util.Map; /** *

@@ -15,5 +16,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); - void importContract( List productRepairRecordsList); + Map importContract(List productRepairRecordsList); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java index 4095754..add13aa 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -16,9 +16,13 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.sql.Timestamp; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** *

@@ -44,7 +48,7 @@ public List reportExport(String devcode, String begTime, String endTime) { EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -56,32 +60,57 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + + if (ToolUtil.isNotEmpty(productRepairRecords.getReturntime())) { + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(), "yyyy-MM-dd HH:mm:ss")); + } } return productRepairRecordsList; } - @Override - public void importContract(List productRepairRecordsList) { + @Transactional + public Map importContract(List productRepairRecordsList) { + + Map resultMap = new HashMap<>(); + //验证设备编号是否存在 +// for (ProductRepairRecords repairRecords : productRepairRecordsList) { +// if (null == deviceService.getDeviceByCode(repairRecords.getDevcode())) { +// String msg = "编号:" + repairRecords.getDevcode() + "在系统中不存在"; +// boolean success = false; +// resultMap.put("msg", msg); +// resultMap.put("success", success); +// return resultMap; +// } +// } productRepairRecordsList.forEach(repairRecords -> { - if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + if (ToolUtil.isNotEmpty(repairRecords.getCheckName())) { Account user = accountService.findUserByName(repairRecords.getCheckName()); - repairRecords.setCheckmanId(user!=null?user.getId():null); + repairRecords.setCheckmanId(user != null ? user.getId() : null); } - if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + if (ToolUtil.isNotEmpty(repairRecords.getRepairName())) { Account user = accountService.findUserByName(repairRecords.getRepairName()); - repairRecords.setRepairmenId(user!=null?user.getId():null); + repairRecords.setRepairmenId(user != null ? user.getId() : null); } - repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? - Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); - repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? - Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + try { + repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? + Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); + repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? + Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + }catch (Exception e){ + System.out.println("日期格式不对编号:"+repairRecords.getDevcode()); + e.printStackTrace(); + } + }); this.insertBatch(productRepairRecordsList); + resultMap.put("success", true); + return resultMap; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java index dd04612..df91064 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -77,6 +77,7 @@ entityWrapper.eq("pro_id", payments.getProId()); entityWrapper.eq("reorder", payments.getReorder()); paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? DateUtil.parseTime(paytimeFmt) : null); paymentsService.insert(payments); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 0ca769c..6e52fd2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -29,7 +29,10 @@ List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, @Param("devcode") String devcode, - @Param("pm") String pm); + @Param("pm") String pm, + @Param("productMode") String productMode, + @Param("contractorNumber") String contractorNumber, + @Param("isSend") String isSend); String getProjectBydevcode(@Param("devcode") String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 7c11b75..ef58eb2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -29,15 +29,15 @@ FROM product_contract w WHERE 1=1 - and w.contract_factory like #{keyword1} + and w.contract_factory like '%${keyword1}%' - and w.contract_number like #{keyword3} + and w.contract_number like '%${keyword3}%' - and w.principal like #{name} + and w.principal like '%${name}%' diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index 3426519..c8614cd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -84,8 +84,11 @@ pd.`iccid`, pt.`cardType`, pt.`operator`, + pdt.`product_name` AS devTypeName , + pt.`devmode_id` AS productModel, + pc.`contract_number` AS contractorNumber, pd.`is_send` AS isSend, - pd.description + pd.description as descn FROM product_device pd LEFT JOIN product_batch pb ON pd.batch_id = pb.id @@ -93,6 +96,10 @@ ON pb.task_id = pt.id LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + LEFT JOIN product_contract pc + ON pc.`id`= pb.`contract_id` WHERE 1=1 @@ -104,9 +111,18 @@ and pd.`devcode` like '%${devcode}%' + + and pt.`devmode_id` = #{productMode} + + + and pc.`contract_number` like '%${contractorNumber}%' + and pp.`project_manager` = #{pm} + + and pd.`is_send` = #{isSend} + ORDER BY pd.`devcode` asc diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index 083caac..50fcc63 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -16,4 +16,7 @@ public interface IAppDeviceLogService extends IService { List getListByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java index fc3d0a4..701ff20 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java @@ -2,13 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.util.PhotoUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.awt.*; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; @@ -58,7 +62,52 @@ } @Override + public String fileUploadMarker(MultipartFile file, String text) throws IOException { + if (!file.isEmpty()) { +// String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String uuid = text.substring(text.indexOf("编号:")+3,text.indexOf("经度:"))+"_"+System.currentTimeMillis(); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + PhotoUtils.markImageByText(text,pathName,pathName,0,new Color(0,0,255),"JPG"); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } + + @Override public String findModeCodeByCode(String devcode) { return this.baseMapper.findModeCodeByCode(devcode); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 22a1665..e42f082 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; @@ -11,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author stylefeng123 @@ -23,7 +25,32 @@ @Override public List getListByCode(String devcode) { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("devcode",devcode); + entityWrapper.eq("devcode", devcode); return this.selectList(entityWrapper); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java new file mode 100644 index 0000000..1db9081 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.util; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; + + +/** + * Created by Administrator on 2015/2/25. + */ +public class PhotoUtils { + /** + * 给图片添加水印文字、可设置水印文字的旋转角度 + * + * @param logoText 要写入的文字 + * @param srcImgPath 源图片路径 + * @param newImagePath 新图片路径 + * @param degree 旋转角度 + * @param color 字体颜色 + * @param formaName 图片后缀 + */ + public static void markImageByText(String logoText, String srcImgPath, String newImagePath, Integer degree, Color color, String formaName) { + InputStream is = null; + OutputStream os = null; + try { + // 1、源图片 + java.awt.Image srcImg = ImageIO.read(new File(srcImgPath)); + BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB); + // 2、得到画笔对象 + Graphics2D g = buffImg.createGraphics(); + // 3、设置对线段的锯齿状边缘处理 + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), java.awt.Image.SCALE_SMOOTH), 0, 0, null); + // 4、设置水印旋转 + if (null != degree) { + g.rotate(Math.toRadians(degree), buffImg.getWidth() / 2, buffImg.getHeight() / 2); + } + // 5、设置水印文字颜色 + g.setColor(color); + // 6、设置水印文字Font + g.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, buffImg.getWidth() / 25)); + // 7、设置水印文字透明度 + g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1f)); + // 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y) + g.drawString(logoText, buffImg.getWidth() / 50, buffImg.getHeight() / 20); + // 9、释放资源 + g.dispose(); + // 10、生成图片 + os = new FileOutputStream(newImagePath); + ImageIO.write(buffImg, formaName, os); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (null != is) + is.close(); + } catch (Exception e) { + e.printStackTrace(); + } + try { + if (null != os) + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index ff8a381..679c266 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; @@ -10,8 +10,8 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dto.DeviceDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.Device; -import com.casic.missiles.modular.system.model.Task; import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -22,9 +22,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -40,7 +37,7 @@ */ @Controller @RequestMapping("/device") -public class DeviceController extends BaseController { +public class DeviceController extends ExportController { @Autowired @@ -158,32 +155,50 @@ /** * 导出设备列表 */ - @RequestMapping(value = "/listExp") - public void reportExport(String projectName, - Long devTypeId, - String devcode, - String pm, - HttpServletRequest httpServletRequest, - HttpServletResponse httpServletResponse) throws IOException { +// @RequestMapping(value = "/listExp") +// public void reportExport(String projectName, Long devTypeId, +// String devcode,String pm, +// String productMode, String contractorNumber,String isSend, +// HttpServletRequest httpServletRequest, +// HttpServletResponse httpServletResponse) throws IOException { +// +// List list = deviceService.reportExport( projectName, +// devTypeId, devcode, pm, productMode, contractorNumber,isSend); +// FileInputStream fileInputStream = new FileInputStream(downloadPath + +// (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); +// try { +// httpServletResponse.setContentType("application/octet-stream"); +// httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); +// Map var = new HashMap<>(); +// var.put("list", list); +// ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); +// } catch (IOException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// httpServletResponse.getOutputStream().flush(); +// httpServletResponse.getOutputStream().close(); +// fileInputStream.close(); +// } +// } - List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); - FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); - Map var = new HashMap<>(); - var.put("list", list); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - } + + + /** + * 导出设备列表(长度超范围优化) + */ + @RequestMapping(value = "/listExp") + public void reportExport(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend) throws IOException { + + List list = deviceService.reportExport( projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceExportEnum.DEVICE_EXPORT, res); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 5f92336..d718327 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -37,7 +37,10 @@ List reportExport(String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); String getProjectBydevcode(String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 2e07102..bbf2d3d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -76,11 +76,12 @@ @Override - public List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm) { - List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + public List reportExport( String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = this.baseMapper.reportExport(projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); for (DeviceDto deviceDto : deviceDtoList) { deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java index 1ce57de..68c37f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -86,7 +86,7 @@ Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -99,8 +99,10 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { productRepairRecords.setDevTypeName(deviceService.getDevTypeBydevcode(productRepairRecords.getDevcode())); productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } } return new SuccessResponseData(super.packForBT(page)); } @@ -280,7 +282,10 @@ row.shutdown(); } }); - productRepairRecordsService.importContract(results); + Map resultMap = productRepairRecordsService.importContract(results); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } } } catch (Exception e) { e.printStackTrace(); @@ -291,21 +296,21 @@ @RequestMapping(value = "/getPhoto") - public void doPost(@RequestParam("id") Long id, HttpServletResponse response,String number) + public void doPost(@RequestParam("id") Long id, HttpServletResponse response, String number) throws ServletException, IOException { ProductRepairRecords repairRecords = productRepairRecordsService.selectById(id); if (ToolUtil.isNotEmpty(repairRecords.getPhotopath1())) { - FileUtil.downloadLocalFile(response,filePath+ repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath3())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java index b1162d7..c1f6792 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import java.util.List; +import java.util.Map; /** *

@@ -15,5 +16,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); - void importContract( List productRepairRecordsList); + Map importContract(List productRepairRecordsList); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java index 4095754..add13aa 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -16,9 +16,13 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.sql.Timestamp; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** *

@@ -44,7 +48,7 @@ public List reportExport(String devcode, String begTime, String endTime) { EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -56,32 +60,57 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + + if (ToolUtil.isNotEmpty(productRepairRecords.getReturntime())) { + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(), "yyyy-MM-dd HH:mm:ss")); + } } return productRepairRecordsList; } - @Override - public void importContract(List productRepairRecordsList) { + @Transactional + public Map importContract(List productRepairRecordsList) { + + Map resultMap = new HashMap<>(); + //验证设备编号是否存在 +// for (ProductRepairRecords repairRecords : productRepairRecordsList) { +// if (null == deviceService.getDeviceByCode(repairRecords.getDevcode())) { +// String msg = "编号:" + repairRecords.getDevcode() + "在系统中不存在"; +// boolean success = false; +// resultMap.put("msg", msg); +// resultMap.put("success", success); +// return resultMap; +// } +// } productRepairRecordsList.forEach(repairRecords -> { - if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + if (ToolUtil.isNotEmpty(repairRecords.getCheckName())) { Account user = accountService.findUserByName(repairRecords.getCheckName()); - repairRecords.setCheckmanId(user!=null?user.getId():null); + repairRecords.setCheckmanId(user != null ? user.getId() : null); } - if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + if (ToolUtil.isNotEmpty(repairRecords.getRepairName())) { Account user = accountService.findUserByName(repairRecords.getRepairName()); - repairRecords.setRepairmenId(user!=null?user.getId():null); + repairRecords.setRepairmenId(user != null ? user.getId() : null); } - repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? - Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); - repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? - Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + try { + repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? + Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); + repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? + Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + }catch (Exception e){ + System.out.println("日期格式不对编号:"+repairRecords.getDevcode()); + e.printStackTrace(); + } + }); this.insertBatch(productRepairRecordsList); + resultMap.put("success", true); + return resultMap; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java index dd04612..df91064 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -77,6 +77,7 @@ entityWrapper.eq("pro_id", payments.getProId()); entityWrapper.eq("reorder", payments.getReorder()); paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? DateUtil.parseTime(paytimeFmt) : null); paymentsService.insert(payments); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 0ca769c..6e52fd2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -29,7 +29,10 @@ List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, @Param("devcode") String devcode, - @Param("pm") String pm); + @Param("pm") String pm, + @Param("productMode") String productMode, + @Param("contractorNumber") String contractorNumber, + @Param("isSend") String isSend); String getProjectBydevcode(@Param("devcode") String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 7c11b75..ef58eb2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -29,15 +29,15 @@ FROM product_contract w WHERE 1=1 - and w.contract_factory like #{keyword1} + and w.contract_factory like '%${keyword1}%' - and w.contract_number like #{keyword3} + and w.contract_number like '%${keyword3}%' - and w.principal like #{name} + and w.principal like '%${name}%' diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index 3426519..c8614cd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -84,8 +84,11 @@ pd.`iccid`, pt.`cardType`, pt.`operator`, + pdt.`product_name` AS devTypeName , + pt.`devmode_id` AS productModel, + pc.`contract_number` AS contractorNumber, pd.`is_send` AS isSend, - pd.description + pd.description as descn FROM product_device pd LEFT JOIN product_batch pb ON pd.batch_id = pb.id @@ -93,6 +96,10 @@ ON pb.task_id = pt.id LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + LEFT JOIN product_contract pc + ON pc.`id`= pb.`contract_id` WHERE 1=1 @@ -104,9 +111,18 @@ and pd.`devcode` like '%${devcode}%' + + and pt.`devmode_id` = #{productMode} + + + and pc.`contract_number` like '%${contractorNumber}%' + and pp.`project_manager` = #{pm} + + and pd.`is_send` = #{isSend} + ORDER BY pd.`devcode` asc diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java new file mode 100644 index 0000000..76e859c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.system.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceExportEnum implements ExportExcelHeaderEnum { + + DEVICE_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devTypeName")); + add(new Header("项目简称", "projectSimpleName")); + add(new Header("运营商", "operator")); + add(new Header("卡类型", "cardType")); + add(new Header("IMEI号", "imei")); + add(new Header("ICCID号", "iccid")); + add(new Header("设备状况", "isSend")); + add(new Header("备注", "descn")); + }}, "deviceList.xlsx", "设备数据导出"); + + + /** + * 导出模板相对路径 + */ + private List

headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index 083caac..50fcc63 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -16,4 +16,7 @@ public interface IAppDeviceLogService extends IService { List getListByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java index fc3d0a4..701ff20 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java @@ -2,13 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.util.PhotoUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.awt.*; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; @@ -58,7 +62,52 @@ } @Override + public String fileUploadMarker(MultipartFile file, String text) throws IOException { + if (!file.isEmpty()) { +// String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String uuid = text.substring(text.indexOf("编号:")+3,text.indexOf("经度:"))+"_"+System.currentTimeMillis(); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + PhotoUtils.markImageByText(text,pathName,pathName,0,new Color(0,0,255),"JPG"); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } + + @Override public String findModeCodeByCode(String devcode) { return this.baseMapper.findModeCodeByCode(devcode); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 22a1665..e42f082 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; @@ -11,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author stylefeng123 @@ -23,7 +25,32 @@ @Override public List getListByCode(String devcode) { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("devcode",devcode); + entityWrapper.eq("devcode", devcode); return this.selectList(entityWrapper); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java new file mode 100644 index 0000000..1db9081 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.util; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; + + +/** + * Created by Administrator on 2015/2/25. + */ +public class PhotoUtils { + /** + * 给图片添加水印文字、可设置水印文字的旋转角度 + * + * @param logoText 要写入的文字 + * @param srcImgPath 源图片路径 + * @param newImagePath 新图片路径 + * @param degree 旋转角度 + * @param color 字体颜色 + * @param formaName 图片后缀 + */ + public static void markImageByText(String logoText, String srcImgPath, String newImagePath, Integer degree, Color color, String formaName) { + InputStream is = null; + OutputStream os = null; + try { + // 1、源图片 + java.awt.Image srcImg = ImageIO.read(new File(srcImgPath)); + BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB); + // 2、得到画笔对象 + Graphics2D g = buffImg.createGraphics(); + // 3、设置对线段的锯齿状边缘处理 + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), java.awt.Image.SCALE_SMOOTH), 0, 0, null); + // 4、设置水印旋转 + if (null != degree) { + g.rotate(Math.toRadians(degree), buffImg.getWidth() / 2, buffImg.getHeight() / 2); + } + // 5、设置水印文字颜色 + g.setColor(color); + // 6、设置水印文字Font + g.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, buffImg.getWidth() / 25)); + // 7、设置水印文字透明度 + g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1f)); + // 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y) + g.drawString(logoText, buffImg.getWidth() / 50, buffImg.getHeight() / 20); + // 9、释放资源 + g.dispose(); + // 10、生成图片 + os = new FileOutputStream(newImagePath); + ImageIO.write(buffImg, formaName, os); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (null != is) + is.close(); + } catch (Exception e) { + e.printStackTrace(); + } + try { + if (null != os) + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index ff8a381..679c266 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; @@ -10,8 +10,8 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dto.DeviceDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.Device; -import com.casic.missiles.modular.system.model.Task; import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -22,9 +22,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -40,7 +37,7 @@ */ @Controller @RequestMapping("/device") -public class DeviceController extends BaseController { +public class DeviceController extends ExportController { @Autowired @@ -158,32 +155,50 @@ /** * 导出设备列表 */ - @RequestMapping(value = "/listExp") - public void reportExport(String projectName, - Long devTypeId, - String devcode, - String pm, - HttpServletRequest httpServletRequest, - HttpServletResponse httpServletResponse) throws IOException { +// @RequestMapping(value = "/listExp") +// public void reportExport(String projectName, Long devTypeId, +// String devcode,String pm, +// String productMode, String contractorNumber,String isSend, +// HttpServletRequest httpServletRequest, +// HttpServletResponse httpServletResponse) throws IOException { +// +// List list = deviceService.reportExport( projectName, +// devTypeId, devcode, pm, productMode, contractorNumber,isSend); +// FileInputStream fileInputStream = new FileInputStream(downloadPath + +// (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); +// try { +// httpServletResponse.setContentType("application/octet-stream"); +// httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); +// Map var = new HashMap<>(); +// var.put("list", list); +// ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); +// } catch (IOException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// httpServletResponse.getOutputStream().flush(); +// httpServletResponse.getOutputStream().close(); +// fileInputStream.close(); +// } +// } - List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); - FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); - Map var = new HashMap<>(); - var.put("list", list); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - } + + + /** + * 导出设备列表(长度超范围优化) + */ + @RequestMapping(value = "/listExp") + public void reportExport(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend) throws IOException { + + List list = deviceService.reportExport( projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceExportEnum.DEVICE_EXPORT, res); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 5f92336..d718327 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -37,7 +37,10 @@ List reportExport(String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); String getProjectBydevcode(String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 2e07102..bbf2d3d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -76,11 +76,12 @@ @Override - public List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm) { - List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + public List reportExport( String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = this.baseMapper.reportExport(projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); for (DeviceDto deviceDto : deviceDtoList) { deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java index 1ce57de..68c37f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -86,7 +86,7 @@ Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -99,8 +99,10 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { productRepairRecords.setDevTypeName(deviceService.getDevTypeBydevcode(productRepairRecords.getDevcode())); productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } } return new SuccessResponseData(super.packForBT(page)); } @@ -280,7 +282,10 @@ row.shutdown(); } }); - productRepairRecordsService.importContract(results); + Map resultMap = productRepairRecordsService.importContract(results); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } } } catch (Exception e) { e.printStackTrace(); @@ -291,21 +296,21 @@ @RequestMapping(value = "/getPhoto") - public void doPost(@RequestParam("id") Long id, HttpServletResponse response,String number) + public void doPost(@RequestParam("id") Long id, HttpServletResponse response, String number) throws ServletException, IOException { ProductRepairRecords repairRecords = productRepairRecordsService.selectById(id); if (ToolUtil.isNotEmpty(repairRecords.getPhotopath1())) { - FileUtil.downloadLocalFile(response,filePath+ repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath3())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java index b1162d7..c1f6792 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import java.util.List; +import java.util.Map; /** *

@@ -15,5 +16,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); - void importContract( List productRepairRecordsList); + Map importContract(List productRepairRecordsList); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java index 4095754..add13aa 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -16,9 +16,13 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.sql.Timestamp; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** *

@@ -44,7 +48,7 @@ public List reportExport(String devcode, String begTime, String endTime) { EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -56,32 +60,57 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + + if (ToolUtil.isNotEmpty(productRepairRecords.getReturntime())) { + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(), "yyyy-MM-dd HH:mm:ss")); + } } return productRepairRecordsList; } - @Override - public void importContract(List productRepairRecordsList) { + @Transactional + public Map importContract(List productRepairRecordsList) { + + Map resultMap = new HashMap<>(); + //验证设备编号是否存在 +// for (ProductRepairRecords repairRecords : productRepairRecordsList) { +// if (null == deviceService.getDeviceByCode(repairRecords.getDevcode())) { +// String msg = "编号:" + repairRecords.getDevcode() + "在系统中不存在"; +// boolean success = false; +// resultMap.put("msg", msg); +// resultMap.put("success", success); +// return resultMap; +// } +// } productRepairRecordsList.forEach(repairRecords -> { - if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + if (ToolUtil.isNotEmpty(repairRecords.getCheckName())) { Account user = accountService.findUserByName(repairRecords.getCheckName()); - repairRecords.setCheckmanId(user!=null?user.getId():null); + repairRecords.setCheckmanId(user != null ? user.getId() : null); } - if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + if (ToolUtil.isNotEmpty(repairRecords.getRepairName())) { Account user = accountService.findUserByName(repairRecords.getRepairName()); - repairRecords.setRepairmenId(user!=null?user.getId():null); + repairRecords.setRepairmenId(user != null ? user.getId() : null); } - repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? - Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); - repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? - Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + try { + repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? + Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); + repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? + Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + }catch (Exception e){ + System.out.println("日期格式不对编号:"+repairRecords.getDevcode()); + e.printStackTrace(); + } + }); this.insertBatch(productRepairRecordsList); + resultMap.put("success", true); + return resultMap; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java index dd04612..df91064 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -77,6 +77,7 @@ entityWrapper.eq("pro_id", payments.getProId()); entityWrapper.eq("reorder", payments.getReorder()); paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? DateUtil.parseTime(paytimeFmt) : null); paymentsService.insert(payments); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 0ca769c..6e52fd2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -29,7 +29,10 @@ List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, @Param("devcode") String devcode, - @Param("pm") String pm); + @Param("pm") String pm, + @Param("productMode") String productMode, + @Param("contractorNumber") String contractorNumber, + @Param("isSend") String isSend); String getProjectBydevcode(@Param("devcode") String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 7c11b75..ef58eb2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -29,15 +29,15 @@ FROM product_contract w WHERE 1=1 - and w.contract_factory like #{keyword1} + and w.contract_factory like '%${keyword1}%' - and w.contract_number like #{keyword3} + and w.contract_number like '%${keyword3}%' - and w.principal like #{name} + and w.principal like '%${name}%' diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index 3426519..c8614cd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -84,8 +84,11 @@ pd.`iccid`, pt.`cardType`, pt.`operator`, + pdt.`product_name` AS devTypeName , + pt.`devmode_id` AS productModel, + pc.`contract_number` AS contractorNumber, pd.`is_send` AS isSend, - pd.description + pd.description as descn FROM product_device pd LEFT JOIN product_batch pb ON pd.batch_id = pb.id @@ -93,6 +96,10 @@ ON pb.task_id = pt.id LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + LEFT JOIN product_contract pc + ON pc.`id`= pb.`contract_id` WHERE 1=1 @@ -104,9 +111,18 @@ and pd.`devcode` like '%${devcode}%' + + and pt.`devmode_id` = #{productMode} + + + and pc.`contract_number` like '%${contractorNumber}%' + and pp.`project_manager` = #{pm} + + and pd.`is_send` = #{isSend} + ORDER BY pd.`devcode` asc diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java new file mode 100644 index 0000000..76e859c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.system.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceExportEnum implements ExportExcelHeaderEnum { + + DEVICE_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devTypeName")); + add(new Header("项目简称", "projectSimpleName")); + add(new Header("运营商", "operator")); + add(new Header("卡类型", "cardType")); + add(new Header("IMEI号", "imei")); + add(new Header("ICCID号", "iccid")); + add(new Header("设备状况", "isSend")); + add(new Header("备注", "descn")); + }}, "deviceList.xlsx", "设备数据导出"); + + + /** + * 导出模板相对路径 + */ + private List

headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java index dd04da0..8b8d7d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.HashMap; @@ -93,7 +94,7 @@ EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(keyword1)) { - query.like("contractFactory", keyword1); + query.like("contract_factory", keyword1); } if (ToolUtil.isNotEmpty(keyword3)) { query.like("contract_number", keyword3); @@ -125,14 +126,21 @@ } public String getPaymentStatus(Contract contract) { + if(ToolUtil.isEmpty(contract.getContractAmount())||"0".equals(contract.getContractAmount())){ + return "0,0%"; + } Map paraMap = new HashMap<>(); paraMap.put("pro_id", contract.getId()); List paymentsList = paymentsService.selectByMap(paraMap); - float sum = 0; +// double sum = 0; + BigDecimal sum= new BigDecimal(0); for (Payments payments : paymentsList) { - sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + if(ToolUtil.isNotEmpty(payments.getMoney())){ + sum=sum.add(new BigDecimal(payments.getMoney())); + } +// sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); } - DecimalFormat df = new DecimalFormat("0"); - return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + DecimalFormat df = new DecimalFormat("#.##%"); + return sum.doubleValue() + "," + df.format(sum.doubleValue() / Double.valueOf(contract.getContractAmount())); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index 083caac..50fcc63 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -16,4 +16,7 @@ public interface IAppDeviceLogService extends IService { List getListByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java index fc3d0a4..701ff20 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java @@ -2,13 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.util.PhotoUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.awt.*; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; @@ -58,7 +62,52 @@ } @Override + public String fileUploadMarker(MultipartFile file, String text) throws IOException { + if (!file.isEmpty()) { +// String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String uuid = text.substring(text.indexOf("编号:")+3,text.indexOf("经度:"))+"_"+System.currentTimeMillis(); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + PhotoUtils.markImageByText(text,pathName,pathName,0,new Color(0,0,255),"JPG"); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } + + @Override public String findModeCodeByCode(String devcode) { return this.baseMapper.findModeCodeByCode(devcode); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 22a1665..e42f082 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; @@ -11,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author stylefeng123 @@ -23,7 +25,32 @@ @Override public List getListByCode(String devcode) { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("devcode",devcode); + entityWrapper.eq("devcode", devcode); return this.selectList(entityWrapper); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java new file mode 100644 index 0000000..1db9081 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.util; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; + + +/** + * Created by Administrator on 2015/2/25. + */ +public class PhotoUtils { + /** + * 给图片添加水印文字、可设置水印文字的旋转角度 + * + * @param logoText 要写入的文字 + * @param srcImgPath 源图片路径 + * @param newImagePath 新图片路径 + * @param degree 旋转角度 + * @param color 字体颜色 + * @param formaName 图片后缀 + */ + public static void markImageByText(String logoText, String srcImgPath, String newImagePath, Integer degree, Color color, String formaName) { + InputStream is = null; + OutputStream os = null; + try { + // 1、源图片 + java.awt.Image srcImg = ImageIO.read(new File(srcImgPath)); + BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB); + // 2、得到画笔对象 + Graphics2D g = buffImg.createGraphics(); + // 3、设置对线段的锯齿状边缘处理 + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), java.awt.Image.SCALE_SMOOTH), 0, 0, null); + // 4、设置水印旋转 + if (null != degree) { + g.rotate(Math.toRadians(degree), buffImg.getWidth() / 2, buffImg.getHeight() / 2); + } + // 5、设置水印文字颜色 + g.setColor(color); + // 6、设置水印文字Font + g.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, buffImg.getWidth() / 25)); + // 7、设置水印文字透明度 + g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1f)); + // 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y) + g.drawString(logoText, buffImg.getWidth() / 50, buffImg.getHeight() / 20); + // 9、释放资源 + g.dispose(); + // 10、生成图片 + os = new FileOutputStream(newImagePath); + ImageIO.write(buffImg, formaName, os); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (null != is) + is.close(); + } catch (Exception e) { + e.printStackTrace(); + } + try { + if (null != os) + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index ff8a381..679c266 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; @@ -10,8 +10,8 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dto.DeviceDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.Device; -import com.casic.missiles.modular.system.model.Task; import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -22,9 +22,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -40,7 +37,7 @@ */ @Controller @RequestMapping("/device") -public class DeviceController extends BaseController { +public class DeviceController extends ExportController { @Autowired @@ -158,32 +155,50 @@ /** * 导出设备列表 */ - @RequestMapping(value = "/listExp") - public void reportExport(String projectName, - Long devTypeId, - String devcode, - String pm, - HttpServletRequest httpServletRequest, - HttpServletResponse httpServletResponse) throws IOException { +// @RequestMapping(value = "/listExp") +// public void reportExport(String projectName, Long devTypeId, +// String devcode,String pm, +// String productMode, String contractorNumber,String isSend, +// HttpServletRequest httpServletRequest, +// HttpServletResponse httpServletResponse) throws IOException { +// +// List list = deviceService.reportExport( projectName, +// devTypeId, devcode, pm, productMode, contractorNumber,isSend); +// FileInputStream fileInputStream = new FileInputStream(downloadPath + +// (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); +// try { +// httpServletResponse.setContentType("application/octet-stream"); +// httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); +// Map var = new HashMap<>(); +// var.put("list", list); +// ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); +// } catch (IOException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// httpServletResponse.getOutputStream().flush(); +// httpServletResponse.getOutputStream().close(); +// fileInputStream.close(); +// } +// } - List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); - FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); - Map var = new HashMap<>(); - var.put("list", list); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - } + + + /** + * 导出设备列表(长度超范围优化) + */ + @RequestMapping(value = "/listExp") + public void reportExport(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend) throws IOException { + + List list = deviceService.reportExport( projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceExportEnum.DEVICE_EXPORT, res); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 5f92336..d718327 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -37,7 +37,10 @@ List reportExport(String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); String getProjectBydevcode(String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 2e07102..bbf2d3d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -76,11 +76,12 @@ @Override - public List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm) { - List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + public List reportExport( String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = this.baseMapper.reportExport(projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); for (DeviceDto deviceDto : deviceDtoList) { deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java index 1ce57de..68c37f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -86,7 +86,7 @@ Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -99,8 +99,10 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { productRepairRecords.setDevTypeName(deviceService.getDevTypeBydevcode(productRepairRecords.getDevcode())); productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } } return new SuccessResponseData(super.packForBT(page)); } @@ -280,7 +282,10 @@ row.shutdown(); } }); - productRepairRecordsService.importContract(results); + Map resultMap = productRepairRecordsService.importContract(results); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } } } catch (Exception e) { e.printStackTrace(); @@ -291,21 +296,21 @@ @RequestMapping(value = "/getPhoto") - public void doPost(@RequestParam("id") Long id, HttpServletResponse response,String number) + public void doPost(@RequestParam("id") Long id, HttpServletResponse response, String number) throws ServletException, IOException { ProductRepairRecords repairRecords = productRepairRecordsService.selectById(id); if (ToolUtil.isNotEmpty(repairRecords.getPhotopath1())) { - FileUtil.downloadLocalFile(response,filePath+ repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath3())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java index b1162d7..c1f6792 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import java.util.List; +import java.util.Map; /** *

@@ -15,5 +16,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); - void importContract( List productRepairRecordsList); + Map importContract(List productRepairRecordsList); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java index 4095754..add13aa 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -16,9 +16,13 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.sql.Timestamp; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** *

@@ -44,7 +48,7 @@ public List reportExport(String devcode, String begTime, String endTime) { EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -56,32 +60,57 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + + if (ToolUtil.isNotEmpty(productRepairRecords.getReturntime())) { + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(), "yyyy-MM-dd HH:mm:ss")); + } } return productRepairRecordsList; } - @Override - public void importContract(List productRepairRecordsList) { + @Transactional + public Map importContract(List productRepairRecordsList) { + + Map resultMap = new HashMap<>(); + //验证设备编号是否存在 +// for (ProductRepairRecords repairRecords : productRepairRecordsList) { +// if (null == deviceService.getDeviceByCode(repairRecords.getDevcode())) { +// String msg = "编号:" + repairRecords.getDevcode() + "在系统中不存在"; +// boolean success = false; +// resultMap.put("msg", msg); +// resultMap.put("success", success); +// return resultMap; +// } +// } productRepairRecordsList.forEach(repairRecords -> { - if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + if (ToolUtil.isNotEmpty(repairRecords.getCheckName())) { Account user = accountService.findUserByName(repairRecords.getCheckName()); - repairRecords.setCheckmanId(user!=null?user.getId():null); + repairRecords.setCheckmanId(user != null ? user.getId() : null); } - if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + if (ToolUtil.isNotEmpty(repairRecords.getRepairName())) { Account user = accountService.findUserByName(repairRecords.getRepairName()); - repairRecords.setRepairmenId(user!=null?user.getId():null); + repairRecords.setRepairmenId(user != null ? user.getId() : null); } - repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? - Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); - repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? - Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + try { + repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? + Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); + repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? + Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + }catch (Exception e){ + System.out.println("日期格式不对编号:"+repairRecords.getDevcode()); + e.printStackTrace(); + } + }); this.insertBatch(productRepairRecordsList); + resultMap.put("success", true); + return resultMap; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java index dd04612..df91064 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -77,6 +77,7 @@ entityWrapper.eq("pro_id", payments.getProId()); entityWrapper.eq("reorder", payments.getReorder()); paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? DateUtil.parseTime(paytimeFmt) : null); paymentsService.insert(payments); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 0ca769c..6e52fd2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -29,7 +29,10 @@ List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, @Param("devcode") String devcode, - @Param("pm") String pm); + @Param("pm") String pm, + @Param("productMode") String productMode, + @Param("contractorNumber") String contractorNumber, + @Param("isSend") String isSend); String getProjectBydevcode(@Param("devcode") String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 7c11b75..ef58eb2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -29,15 +29,15 @@ FROM product_contract w WHERE 1=1 - and w.contract_factory like #{keyword1} + and w.contract_factory like '%${keyword1}%' - and w.contract_number like #{keyword3} + and w.contract_number like '%${keyword3}%' - and w.principal like #{name} + and w.principal like '%${name}%' diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index 3426519..c8614cd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -84,8 +84,11 @@ pd.`iccid`, pt.`cardType`, pt.`operator`, + pdt.`product_name` AS devTypeName , + pt.`devmode_id` AS productModel, + pc.`contract_number` AS contractorNumber, pd.`is_send` AS isSend, - pd.description + pd.description as descn FROM product_device pd LEFT JOIN product_batch pb ON pd.batch_id = pb.id @@ -93,6 +96,10 @@ ON pb.task_id = pt.id LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + LEFT JOIN product_contract pc + ON pc.`id`= pb.`contract_id` WHERE 1=1 @@ -104,9 +111,18 @@ and pd.`devcode` like '%${devcode}%' + + and pt.`devmode_id` = #{productMode} + + + and pc.`contract_number` like '%${contractorNumber}%' + and pp.`project_manager` = #{pm} + + and pd.`is_send` = #{isSend} + ORDER BY pd.`devcode` asc diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java new file mode 100644 index 0000000..76e859c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.system.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceExportEnum implements ExportExcelHeaderEnum { + + DEVICE_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devTypeName")); + add(new Header("项目简称", "projectSimpleName")); + add(new Header("运营商", "operator")); + add(new Header("卡类型", "cardType")); + add(new Header("IMEI号", "imei")); + add(new Header("ICCID号", "iccid")); + add(new Header("设备状况", "isSend")); + add(new Header("备注", "descn")); + }}, "deviceList.xlsx", "设备数据导出"); + + + /** + * 导出模板相对路径 + */ + private List

headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java index dd04da0..8b8d7d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.HashMap; @@ -93,7 +94,7 @@ EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(keyword1)) { - query.like("contractFactory", keyword1); + query.like("contract_factory", keyword1); } if (ToolUtil.isNotEmpty(keyword3)) { query.like("contract_number", keyword3); @@ -125,14 +126,21 @@ } public String getPaymentStatus(Contract contract) { + if(ToolUtil.isEmpty(contract.getContractAmount())||"0".equals(contract.getContractAmount())){ + return "0,0%"; + } Map paraMap = new HashMap<>(); paraMap.put("pro_id", contract.getId()); List paymentsList = paymentsService.selectByMap(paraMap); - float sum = 0; +// double sum = 0; + BigDecimal sum= new BigDecimal(0); for (Payments payments : paymentsList) { - sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + if(ToolUtil.isNotEmpty(payments.getMoney())){ + sum=sum.add(new BigDecimal(payments.getMoney())); + } +// sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); } - DecimalFormat df = new DecimalFormat("0"); - return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + DecimalFormat df = new DecimalFormat("#.##%"); + return sum.doubleValue() + "," + df.format(sum.doubleValue() / Double.valueOf(contract.getContractAmount())); } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java index 0c125d8..879d923 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -10,6 +10,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.List; /** @@ -31,17 +32,19 @@ EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("pro_id", proId); List paymentsList = this.selectList(entityWrapper); - long total = Long.valueOf(money); - long contractAmount = 0; + BigDecimal b1=new BigDecimal(money); + double contractAmount = 0; for (Payments payments : paymentsList) { if(reorder.equals(payments.getReorder())) continue; - total += ToolUtil.isNotEmpty(payments.getMoney()) ? - Long.valueOf(payments.getMoney()) : 0; + + if(ToolUtil.isNotEmpty(payments.getMoney())){ + b1=b1.add(new BigDecimal(payments.getMoney())); + } } Contract contract = contractService.selectById(proId); contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? - Long.valueOf(contract.getContractAmount()) : 0; - if (total > contractAmount) return true; + Double.valueOf(contract.getContractAmount()) : 0; + if (b1.doubleValue() > contractAmount) return true; return false; } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index 083caac..50fcc63 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -16,4 +16,7 @@ public interface IAppDeviceLogService extends IService { List getListByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java index fc3d0a4..701ff20 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java @@ -2,13 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.util.PhotoUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.awt.*; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; @@ -58,7 +62,52 @@ } @Override + public String fileUploadMarker(MultipartFile file, String text) throws IOException { + if (!file.isEmpty()) { +// String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String uuid = text.substring(text.indexOf("编号:")+3,text.indexOf("经度:"))+"_"+System.currentTimeMillis(); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + PhotoUtils.markImageByText(text,pathName,pathName,0,new Color(0,0,255),"JPG"); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } + + @Override public String findModeCodeByCode(String devcode) { return this.baseMapper.findModeCodeByCode(devcode); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 22a1665..e42f082 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; @@ -11,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author stylefeng123 @@ -23,7 +25,32 @@ @Override public List getListByCode(String devcode) { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("devcode",devcode); + entityWrapper.eq("devcode", devcode); return this.selectList(entityWrapper); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java new file mode 100644 index 0000000..1db9081 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.util; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; + + +/** + * Created by Administrator on 2015/2/25. + */ +public class PhotoUtils { + /** + * 给图片添加水印文字、可设置水印文字的旋转角度 + * + * @param logoText 要写入的文字 + * @param srcImgPath 源图片路径 + * @param newImagePath 新图片路径 + * @param degree 旋转角度 + * @param color 字体颜色 + * @param formaName 图片后缀 + */ + public static void markImageByText(String logoText, String srcImgPath, String newImagePath, Integer degree, Color color, String formaName) { + InputStream is = null; + OutputStream os = null; + try { + // 1、源图片 + java.awt.Image srcImg = ImageIO.read(new File(srcImgPath)); + BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB); + // 2、得到画笔对象 + Graphics2D g = buffImg.createGraphics(); + // 3、设置对线段的锯齿状边缘处理 + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), java.awt.Image.SCALE_SMOOTH), 0, 0, null); + // 4、设置水印旋转 + if (null != degree) { + g.rotate(Math.toRadians(degree), buffImg.getWidth() / 2, buffImg.getHeight() / 2); + } + // 5、设置水印文字颜色 + g.setColor(color); + // 6、设置水印文字Font + g.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, buffImg.getWidth() / 25)); + // 7、设置水印文字透明度 + g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1f)); + // 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y) + g.drawString(logoText, buffImg.getWidth() / 50, buffImg.getHeight() / 20); + // 9、释放资源 + g.dispose(); + // 10、生成图片 + os = new FileOutputStream(newImagePath); + ImageIO.write(buffImg, formaName, os); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (null != is) + is.close(); + } catch (Exception e) { + e.printStackTrace(); + } + try { + if (null != os) + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index ff8a381..679c266 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; @@ -10,8 +10,8 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dto.DeviceDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.Device; -import com.casic.missiles.modular.system.model.Task; import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -22,9 +22,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -40,7 +37,7 @@ */ @Controller @RequestMapping("/device") -public class DeviceController extends BaseController { +public class DeviceController extends ExportController { @Autowired @@ -158,32 +155,50 @@ /** * 导出设备列表 */ - @RequestMapping(value = "/listExp") - public void reportExport(String projectName, - Long devTypeId, - String devcode, - String pm, - HttpServletRequest httpServletRequest, - HttpServletResponse httpServletResponse) throws IOException { +// @RequestMapping(value = "/listExp") +// public void reportExport(String projectName, Long devTypeId, +// String devcode,String pm, +// String productMode, String contractorNumber,String isSend, +// HttpServletRequest httpServletRequest, +// HttpServletResponse httpServletResponse) throws IOException { +// +// List list = deviceService.reportExport( projectName, +// devTypeId, devcode, pm, productMode, contractorNumber,isSend); +// FileInputStream fileInputStream = new FileInputStream(downloadPath + +// (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); +// try { +// httpServletResponse.setContentType("application/octet-stream"); +// httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); +// Map var = new HashMap<>(); +// var.put("list", list); +// ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); +// } catch (IOException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// httpServletResponse.getOutputStream().flush(); +// httpServletResponse.getOutputStream().close(); +// fileInputStream.close(); +// } +// } - List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); - FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); - Map var = new HashMap<>(); - var.put("list", list); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - } + + + /** + * 导出设备列表(长度超范围优化) + */ + @RequestMapping(value = "/listExp") + public void reportExport(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend) throws IOException { + + List list = deviceService.reportExport( projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceExportEnum.DEVICE_EXPORT, res); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 5f92336..d718327 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -37,7 +37,10 @@ List reportExport(String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); String getProjectBydevcode(String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 2e07102..bbf2d3d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -76,11 +76,12 @@ @Override - public List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm) { - List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + public List reportExport( String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = this.baseMapper.reportExport(projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); for (DeviceDto deviceDto : deviceDtoList) { deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java index 1ce57de..68c37f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -86,7 +86,7 @@ Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -99,8 +99,10 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { productRepairRecords.setDevTypeName(deviceService.getDevTypeBydevcode(productRepairRecords.getDevcode())); productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } } return new SuccessResponseData(super.packForBT(page)); } @@ -280,7 +282,10 @@ row.shutdown(); } }); - productRepairRecordsService.importContract(results); + Map resultMap = productRepairRecordsService.importContract(results); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } } } catch (Exception e) { e.printStackTrace(); @@ -291,21 +296,21 @@ @RequestMapping(value = "/getPhoto") - public void doPost(@RequestParam("id") Long id, HttpServletResponse response,String number) + public void doPost(@RequestParam("id") Long id, HttpServletResponse response, String number) throws ServletException, IOException { ProductRepairRecords repairRecords = productRepairRecordsService.selectById(id); if (ToolUtil.isNotEmpty(repairRecords.getPhotopath1())) { - FileUtil.downloadLocalFile(response,filePath+ repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath3())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java index b1162d7..c1f6792 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import java.util.List; +import java.util.Map; /** *

@@ -15,5 +16,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); - void importContract( List productRepairRecordsList); + Map importContract(List productRepairRecordsList); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java index 4095754..add13aa 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -16,9 +16,13 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.sql.Timestamp; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** *

@@ -44,7 +48,7 @@ public List reportExport(String devcode, String begTime, String endTime) { EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -56,32 +60,57 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + + if (ToolUtil.isNotEmpty(productRepairRecords.getReturntime())) { + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(), "yyyy-MM-dd HH:mm:ss")); + } } return productRepairRecordsList; } - @Override - public void importContract(List productRepairRecordsList) { + @Transactional + public Map importContract(List productRepairRecordsList) { + + Map resultMap = new HashMap<>(); + //验证设备编号是否存在 +// for (ProductRepairRecords repairRecords : productRepairRecordsList) { +// if (null == deviceService.getDeviceByCode(repairRecords.getDevcode())) { +// String msg = "编号:" + repairRecords.getDevcode() + "在系统中不存在"; +// boolean success = false; +// resultMap.put("msg", msg); +// resultMap.put("success", success); +// return resultMap; +// } +// } productRepairRecordsList.forEach(repairRecords -> { - if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + if (ToolUtil.isNotEmpty(repairRecords.getCheckName())) { Account user = accountService.findUserByName(repairRecords.getCheckName()); - repairRecords.setCheckmanId(user!=null?user.getId():null); + repairRecords.setCheckmanId(user != null ? user.getId() : null); } - if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + if (ToolUtil.isNotEmpty(repairRecords.getRepairName())) { Account user = accountService.findUserByName(repairRecords.getRepairName()); - repairRecords.setRepairmenId(user!=null?user.getId():null); + repairRecords.setRepairmenId(user != null ? user.getId() : null); } - repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? - Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); - repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? - Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + try { + repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? + Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); + repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? + Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + }catch (Exception e){ + System.out.println("日期格式不对编号:"+repairRecords.getDevcode()); + e.printStackTrace(); + } + }); this.insertBatch(productRepairRecordsList); + resultMap.put("success", true); + return resultMap; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java index dd04612..df91064 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -77,6 +77,7 @@ entityWrapper.eq("pro_id", payments.getProId()); entityWrapper.eq("reorder", payments.getReorder()); paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? DateUtil.parseTime(paytimeFmt) : null); paymentsService.insert(payments); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 0ca769c..6e52fd2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -29,7 +29,10 @@ List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, @Param("devcode") String devcode, - @Param("pm") String pm); + @Param("pm") String pm, + @Param("productMode") String productMode, + @Param("contractorNumber") String contractorNumber, + @Param("isSend") String isSend); String getProjectBydevcode(@Param("devcode") String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 7c11b75..ef58eb2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -29,15 +29,15 @@ FROM product_contract w WHERE 1=1 - and w.contract_factory like #{keyword1} + and w.contract_factory like '%${keyword1}%' - and w.contract_number like #{keyword3} + and w.contract_number like '%${keyword3}%' - and w.principal like #{name} + and w.principal like '%${name}%' diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index 3426519..c8614cd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -84,8 +84,11 @@ pd.`iccid`, pt.`cardType`, pt.`operator`, + pdt.`product_name` AS devTypeName , + pt.`devmode_id` AS productModel, + pc.`contract_number` AS contractorNumber, pd.`is_send` AS isSend, - pd.description + pd.description as descn FROM product_device pd LEFT JOIN product_batch pb ON pd.batch_id = pb.id @@ -93,6 +96,10 @@ ON pb.task_id = pt.id LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + LEFT JOIN product_contract pc + ON pc.`id`= pb.`contract_id` WHERE 1=1 @@ -104,9 +111,18 @@ and pd.`devcode` like '%${devcode}%' + + and pt.`devmode_id` = #{productMode} + + + and pc.`contract_number` like '%${contractorNumber}%' + and pp.`project_manager` = #{pm} + + and pd.`is_send` = #{isSend} + ORDER BY pd.`devcode` asc diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java new file mode 100644 index 0000000..76e859c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.system.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceExportEnum implements ExportExcelHeaderEnum { + + DEVICE_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devTypeName")); + add(new Header("项目简称", "projectSimpleName")); + add(new Header("运营商", "operator")); + add(new Header("卡类型", "cardType")); + add(new Header("IMEI号", "imei")); + add(new Header("ICCID号", "iccid")); + add(new Header("设备状况", "isSend")); + add(new Header("备注", "descn")); + }}, "deviceList.xlsx", "设备数据导出"); + + + /** + * 导出模板相对路径 + */ + private List

headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java index dd04da0..8b8d7d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.HashMap; @@ -93,7 +94,7 @@ EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(keyword1)) { - query.like("contractFactory", keyword1); + query.like("contract_factory", keyword1); } if (ToolUtil.isNotEmpty(keyword3)) { query.like("contract_number", keyword3); @@ -125,14 +126,21 @@ } public String getPaymentStatus(Contract contract) { + if(ToolUtil.isEmpty(contract.getContractAmount())||"0".equals(contract.getContractAmount())){ + return "0,0%"; + } Map paraMap = new HashMap<>(); paraMap.put("pro_id", contract.getId()); List paymentsList = paymentsService.selectByMap(paraMap); - float sum = 0; +// double sum = 0; + BigDecimal sum= new BigDecimal(0); for (Payments payments : paymentsList) { - sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + if(ToolUtil.isNotEmpty(payments.getMoney())){ + sum=sum.add(new BigDecimal(payments.getMoney())); + } +// sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); } - DecimalFormat df = new DecimalFormat("0"); - return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + DecimalFormat df = new DecimalFormat("#.##%"); + return sum.doubleValue() + "," + df.format(sum.doubleValue() / Double.valueOf(contract.getContractAmount())); } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java index 0c125d8..879d923 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -10,6 +10,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.List; /** @@ -31,17 +32,19 @@ EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("pro_id", proId); List paymentsList = this.selectList(entityWrapper); - long total = Long.valueOf(money); - long contractAmount = 0; + BigDecimal b1=new BigDecimal(money); + double contractAmount = 0; for (Payments payments : paymentsList) { if(reorder.equals(payments.getReorder())) continue; - total += ToolUtil.isNotEmpty(payments.getMoney()) ? - Long.valueOf(payments.getMoney()) : 0; + + if(ToolUtil.isNotEmpty(payments.getMoney())){ + b1=b1.add(new BigDecimal(payments.getMoney())); + } } Contract contract = contractService.selectById(proId); contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? - Long.valueOf(contract.getContractAmount()) : 0; - if (total > contractAmount) return true; + Double.valueOf(contract.getContractAmount()) : 0; + if (b1.doubleValue() > contractAmount) return true; return false; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java index 5e8b77b..d289b96 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -11,6 +11,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.List; /** @@ -32,17 +33,18 @@ EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("pro_id", proId); List reimburseList = this.selectList(entityWrapper); - long total = Long.valueOf(money); - long contractAmount = 0; + BigDecimal b1 = new BigDecimal(money); + double contractAmount = 0; for (Reimburse reimburse : reimburseList) { if (reorder.equals(reimburse.getReorder())) continue; - total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? - Long.valueOf(reimburse.getMoney()) : 0; + if (ToolUtil.isNotEmpty(reimburse.getMoney())) { + b1 = b1.add(new BigDecimal(reimburse.getMoney())); + } } Contract contract = contractService.selectById(proId); contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? - Long.valueOf(contract.getContractAmount()) : 0; - if (total > contractAmount) return true; + Double.valueOf(contract.getContractAmount()) : 0; + if (b1.doubleValue() > contractAmount) return true; return false; } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index 083caac..50fcc63 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -16,4 +16,7 @@ public interface IAppDeviceLogService extends IService { List getListByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java index fc3d0a4..701ff20 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java @@ -2,13 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.util.PhotoUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.awt.*; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; @@ -58,7 +62,52 @@ } @Override + public String fileUploadMarker(MultipartFile file, String text) throws IOException { + if (!file.isEmpty()) { +// String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String uuid = text.substring(text.indexOf("编号:")+3,text.indexOf("经度:"))+"_"+System.currentTimeMillis(); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + PhotoUtils.markImageByText(text,pathName,pathName,0,new Color(0,0,255),"JPG"); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } + + @Override public String findModeCodeByCode(String devcode) { return this.baseMapper.findModeCodeByCode(devcode); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 22a1665..e42f082 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; @@ -11,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author stylefeng123 @@ -23,7 +25,32 @@ @Override public List getListByCode(String devcode) { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("devcode",devcode); + entityWrapper.eq("devcode", devcode); return this.selectList(entityWrapper); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java new file mode 100644 index 0000000..1db9081 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.util; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; + + +/** + * Created by Administrator on 2015/2/25. + */ +public class PhotoUtils { + /** + * 给图片添加水印文字、可设置水印文字的旋转角度 + * + * @param logoText 要写入的文字 + * @param srcImgPath 源图片路径 + * @param newImagePath 新图片路径 + * @param degree 旋转角度 + * @param color 字体颜色 + * @param formaName 图片后缀 + */ + public static void markImageByText(String logoText, String srcImgPath, String newImagePath, Integer degree, Color color, String formaName) { + InputStream is = null; + OutputStream os = null; + try { + // 1、源图片 + java.awt.Image srcImg = ImageIO.read(new File(srcImgPath)); + BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB); + // 2、得到画笔对象 + Graphics2D g = buffImg.createGraphics(); + // 3、设置对线段的锯齿状边缘处理 + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), java.awt.Image.SCALE_SMOOTH), 0, 0, null); + // 4、设置水印旋转 + if (null != degree) { + g.rotate(Math.toRadians(degree), buffImg.getWidth() / 2, buffImg.getHeight() / 2); + } + // 5、设置水印文字颜色 + g.setColor(color); + // 6、设置水印文字Font + g.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, buffImg.getWidth() / 25)); + // 7、设置水印文字透明度 + g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1f)); + // 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y) + g.drawString(logoText, buffImg.getWidth() / 50, buffImg.getHeight() / 20); + // 9、释放资源 + g.dispose(); + // 10、生成图片 + os = new FileOutputStream(newImagePath); + ImageIO.write(buffImg, formaName, os); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (null != is) + is.close(); + } catch (Exception e) { + e.printStackTrace(); + } + try { + if (null != os) + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index ff8a381..679c266 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; @@ -10,8 +10,8 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dto.DeviceDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.Device; -import com.casic.missiles.modular.system.model.Task; import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -22,9 +22,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -40,7 +37,7 @@ */ @Controller @RequestMapping("/device") -public class DeviceController extends BaseController { +public class DeviceController extends ExportController { @Autowired @@ -158,32 +155,50 @@ /** * 导出设备列表 */ - @RequestMapping(value = "/listExp") - public void reportExport(String projectName, - Long devTypeId, - String devcode, - String pm, - HttpServletRequest httpServletRequest, - HttpServletResponse httpServletResponse) throws IOException { +// @RequestMapping(value = "/listExp") +// public void reportExport(String projectName, Long devTypeId, +// String devcode,String pm, +// String productMode, String contractorNumber,String isSend, +// HttpServletRequest httpServletRequest, +// HttpServletResponse httpServletResponse) throws IOException { +// +// List list = deviceService.reportExport( projectName, +// devTypeId, devcode, pm, productMode, contractorNumber,isSend); +// FileInputStream fileInputStream = new FileInputStream(downloadPath + +// (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); +// try { +// httpServletResponse.setContentType("application/octet-stream"); +// httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); +// Map var = new HashMap<>(); +// var.put("list", list); +// ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); +// } catch (IOException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// httpServletResponse.getOutputStream().flush(); +// httpServletResponse.getOutputStream().close(); +// fileInputStream.close(); +// } +// } - List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); - FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); - Map var = new HashMap<>(); - var.put("list", list); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - } + + + /** + * 导出设备列表(长度超范围优化) + */ + @RequestMapping(value = "/listExp") + public void reportExport(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend) throws IOException { + + List list = deviceService.reportExport( projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceExportEnum.DEVICE_EXPORT, res); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 5f92336..d718327 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -37,7 +37,10 @@ List reportExport(String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); String getProjectBydevcode(String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 2e07102..bbf2d3d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -76,11 +76,12 @@ @Override - public List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm) { - List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + public List reportExport( String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = this.baseMapper.reportExport(projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); for (DeviceDto deviceDto : deviceDtoList) { deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java index 1ce57de..68c37f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -86,7 +86,7 @@ Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -99,8 +99,10 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { productRepairRecords.setDevTypeName(deviceService.getDevTypeBydevcode(productRepairRecords.getDevcode())); productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } } return new SuccessResponseData(super.packForBT(page)); } @@ -280,7 +282,10 @@ row.shutdown(); } }); - productRepairRecordsService.importContract(results); + Map resultMap = productRepairRecordsService.importContract(results); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } } } catch (Exception e) { e.printStackTrace(); @@ -291,21 +296,21 @@ @RequestMapping(value = "/getPhoto") - public void doPost(@RequestParam("id") Long id, HttpServletResponse response,String number) + public void doPost(@RequestParam("id") Long id, HttpServletResponse response, String number) throws ServletException, IOException { ProductRepairRecords repairRecords = productRepairRecordsService.selectById(id); if (ToolUtil.isNotEmpty(repairRecords.getPhotopath1())) { - FileUtil.downloadLocalFile(response,filePath+ repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath3())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java index b1162d7..c1f6792 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import java.util.List; +import java.util.Map; /** *

@@ -15,5 +16,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); - void importContract( List productRepairRecordsList); + Map importContract(List productRepairRecordsList); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java index 4095754..add13aa 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -16,9 +16,13 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.sql.Timestamp; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** *

@@ -44,7 +48,7 @@ public List reportExport(String devcode, String begTime, String endTime) { EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -56,32 +60,57 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + + if (ToolUtil.isNotEmpty(productRepairRecords.getReturntime())) { + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(), "yyyy-MM-dd HH:mm:ss")); + } } return productRepairRecordsList; } - @Override - public void importContract(List productRepairRecordsList) { + @Transactional + public Map importContract(List productRepairRecordsList) { + + Map resultMap = new HashMap<>(); + //验证设备编号是否存在 +// for (ProductRepairRecords repairRecords : productRepairRecordsList) { +// if (null == deviceService.getDeviceByCode(repairRecords.getDevcode())) { +// String msg = "编号:" + repairRecords.getDevcode() + "在系统中不存在"; +// boolean success = false; +// resultMap.put("msg", msg); +// resultMap.put("success", success); +// return resultMap; +// } +// } productRepairRecordsList.forEach(repairRecords -> { - if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + if (ToolUtil.isNotEmpty(repairRecords.getCheckName())) { Account user = accountService.findUserByName(repairRecords.getCheckName()); - repairRecords.setCheckmanId(user!=null?user.getId():null); + repairRecords.setCheckmanId(user != null ? user.getId() : null); } - if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + if (ToolUtil.isNotEmpty(repairRecords.getRepairName())) { Account user = accountService.findUserByName(repairRecords.getRepairName()); - repairRecords.setRepairmenId(user!=null?user.getId():null); + repairRecords.setRepairmenId(user != null ? user.getId() : null); } - repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? - Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); - repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? - Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + try { + repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? + Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); + repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? + Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + }catch (Exception e){ + System.out.println("日期格式不对编号:"+repairRecords.getDevcode()); + e.printStackTrace(); + } + }); this.insertBatch(productRepairRecordsList); + resultMap.put("success", true); + return resultMap; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java index dd04612..df91064 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -77,6 +77,7 @@ entityWrapper.eq("pro_id", payments.getProId()); entityWrapper.eq("reorder", payments.getReorder()); paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? DateUtil.parseTime(paytimeFmt) : null); paymentsService.insert(payments); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 0ca769c..6e52fd2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -29,7 +29,10 @@ List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, @Param("devcode") String devcode, - @Param("pm") String pm); + @Param("pm") String pm, + @Param("productMode") String productMode, + @Param("contractorNumber") String contractorNumber, + @Param("isSend") String isSend); String getProjectBydevcode(@Param("devcode") String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 7c11b75..ef58eb2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -29,15 +29,15 @@ FROM product_contract w WHERE 1=1 - and w.contract_factory like #{keyword1} + and w.contract_factory like '%${keyword1}%' - and w.contract_number like #{keyword3} + and w.contract_number like '%${keyword3}%' - and w.principal like #{name} + and w.principal like '%${name}%' diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index 3426519..c8614cd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -84,8 +84,11 @@ pd.`iccid`, pt.`cardType`, pt.`operator`, + pdt.`product_name` AS devTypeName , + pt.`devmode_id` AS productModel, + pc.`contract_number` AS contractorNumber, pd.`is_send` AS isSend, - pd.description + pd.description as descn FROM product_device pd LEFT JOIN product_batch pb ON pd.batch_id = pb.id @@ -93,6 +96,10 @@ ON pb.task_id = pt.id LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + LEFT JOIN product_contract pc + ON pc.`id`= pb.`contract_id` WHERE 1=1 @@ -104,9 +111,18 @@ and pd.`devcode` like '%${devcode}%' + + and pt.`devmode_id` = #{productMode} + + + and pc.`contract_number` like '%${contractorNumber}%' + and pp.`project_manager` = #{pm} + + and pd.`is_send` = #{isSend} + ORDER BY pd.`devcode` asc diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java new file mode 100644 index 0000000..76e859c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.system.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceExportEnum implements ExportExcelHeaderEnum { + + DEVICE_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devTypeName")); + add(new Header("项目简称", "projectSimpleName")); + add(new Header("运营商", "operator")); + add(new Header("卡类型", "cardType")); + add(new Header("IMEI号", "imei")); + add(new Header("ICCID号", "iccid")); + add(new Header("设备状况", "isSend")); + add(new Header("备注", "descn")); + }}, "deviceList.xlsx", "设备数据导出"); + + + /** + * 导出模板相对路径 + */ + private List

headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java index dd04da0..8b8d7d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.HashMap; @@ -93,7 +94,7 @@ EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(keyword1)) { - query.like("contractFactory", keyword1); + query.like("contract_factory", keyword1); } if (ToolUtil.isNotEmpty(keyword3)) { query.like("contract_number", keyword3); @@ -125,14 +126,21 @@ } public String getPaymentStatus(Contract contract) { + if(ToolUtil.isEmpty(contract.getContractAmount())||"0".equals(contract.getContractAmount())){ + return "0,0%"; + } Map paraMap = new HashMap<>(); paraMap.put("pro_id", contract.getId()); List paymentsList = paymentsService.selectByMap(paraMap); - float sum = 0; +// double sum = 0; + BigDecimal sum= new BigDecimal(0); for (Payments payments : paymentsList) { - sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + if(ToolUtil.isNotEmpty(payments.getMoney())){ + sum=sum.add(new BigDecimal(payments.getMoney())); + } +// sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); } - DecimalFormat df = new DecimalFormat("0"); - return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + DecimalFormat df = new DecimalFormat("#.##%"); + return sum.doubleValue() + "," + df.format(sum.doubleValue() / Double.valueOf(contract.getContractAmount())); } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java index 0c125d8..879d923 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -10,6 +10,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.List; /** @@ -31,17 +32,19 @@ EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("pro_id", proId); List paymentsList = this.selectList(entityWrapper); - long total = Long.valueOf(money); - long contractAmount = 0; + BigDecimal b1=new BigDecimal(money); + double contractAmount = 0; for (Payments payments : paymentsList) { if(reorder.equals(payments.getReorder())) continue; - total += ToolUtil.isNotEmpty(payments.getMoney()) ? - Long.valueOf(payments.getMoney()) : 0; + + if(ToolUtil.isNotEmpty(payments.getMoney())){ + b1=b1.add(new BigDecimal(payments.getMoney())); + } } Contract contract = contractService.selectById(proId); contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? - Long.valueOf(contract.getContractAmount()) : 0; - if (total > contractAmount) return true; + Double.valueOf(contract.getContractAmount()) : 0; + if (b1.doubleValue() > contractAmount) return true; return false; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java index 5e8b77b..d289b96 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -11,6 +11,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.List; /** @@ -32,17 +33,18 @@ EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("pro_id", proId); List reimburseList = this.selectList(entityWrapper); - long total = Long.valueOf(money); - long contractAmount = 0; + BigDecimal b1 = new BigDecimal(money); + double contractAmount = 0; for (Reimburse reimburse : reimburseList) { if (reorder.equals(reimburse.getReorder())) continue; - total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? - Long.valueOf(reimburse.getMoney()) : 0; + if (ToolUtil.isNotEmpty(reimburse.getMoney())) { + b1 = b1.add(new BigDecimal(reimburse.getMoney())); + } } Contract contract = contractService.selectById(proId); contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? - Long.valueOf(contract.getContractAmount()) : 0; - if (total > contractAmount) return true; + Double.valueOf(contract.getContractAmount()) : 0; + if (b1.doubleValue() > contractAmount) return true; return false; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java index 5d82777..1132eaf 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -205,7 +205,7 @@ @ResponseBody public Object getTask() { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("isstored", "1"); +// entityWrapper.eq("isstored", "1"); List taskList = taskService.selectList(entityWrapper); for (Task task : taskList) { Project project = projectService.selectById(task.getProjectId()); diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index 083caac..50fcc63 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -16,4 +16,7 @@ public interface IAppDeviceLogService extends IService { List getListByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java index fc3d0a4..701ff20 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java @@ -2,13 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.util.PhotoUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.awt.*; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; @@ -58,7 +62,52 @@ } @Override + public String fileUploadMarker(MultipartFile file, String text) throws IOException { + if (!file.isEmpty()) { +// String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String uuid = text.substring(text.indexOf("编号:")+3,text.indexOf("经度:"))+"_"+System.currentTimeMillis(); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + PhotoUtils.markImageByText(text,pathName,pathName,0,new Color(0,0,255),"JPG"); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } + + @Override public String findModeCodeByCode(String devcode) { return this.baseMapper.findModeCodeByCode(devcode); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 22a1665..e42f082 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; @@ -11,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author stylefeng123 @@ -23,7 +25,32 @@ @Override public List getListByCode(String devcode) { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("devcode",devcode); + entityWrapper.eq("devcode", devcode); return this.selectList(entityWrapper); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java new file mode 100644 index 0000000..1db9081 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.util; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; + + +/** + * Created by Administrator on 2015/2/25. + */ +public class PhotoUtils { + /** + * 给图片添加水印文字、可设置水印文字的旋转角度 + * + * @param logoText 要写入的文字 + * @param srcImgPath 源图片路径 + * @param newImagePath 新图片路径 + * @param degree 旋转角度 + * @param color 字体颜色 + * @param formaName 图片后缀 + */ + public static void markImageByText(String logoText, String srcImgPath, String newImagePath, Integer degree, Color color, String formaName) { + InputStream is = null; + OutputStream os = null; + try { + // 1、源图片 + java.awt.Image srcImg = ImageIO.read(new File(srcImgPath)); + BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB); + // 2、得到画笔对象 + Graphics2D g = buffImg.createGraphics(); + // 3、设置对线段的锯齿状边缘处理 + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), java.awt.Image.SCALE_SMOOTH), 0, 0, null); + // 4、设置水印旋转 + if (null != degree) { + g.rotate(Math.toRadians(degree), buffImg.getWidth() / 2, buffImg.getHeight() / 2); + } + // 5、设置水印文字颜色 + g.setColor(color); + // 6、设置水印文字Font + g.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, buffImg.getWidth() / 25)); + // 7、设置水印文字透明度 + g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1f)); + // 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y) + g.drawString(logoText, buffImg.getWidth() / 50, buffImg.getHeight() / 20); + // 9、释放资源 + g.dispose(); + // 10、生成图片 + os = new FileOutputStream(newImagePath); + ImageIO.write(buffImg, formaName, os); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (null != is) + is.close(); + } catch (Exception e) { + e.printStackTrace(); + } + try { + if (null != os) + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index ff8a381..679c266 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; @@ -10,8 +10,8 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dto.DeviceDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.Device; -import com.casic.missiles.modular.system.model.Task; import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -22,9 +22,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -40,7 +37,7 @@ */ @Controller @RequestMapping("/device") -public class DeviceController extends BaseController { +public class DeviceController extends ExportController { @Autowired @@ -158,32 +155,50 @@ /** * 导出设备列表 */ - @RequestMapping(value = "/listExp") - public void reportExport(String projectName, - Long devTypeId, - String devcode, - String pm, - HttpServletRequest httpServletRequest, - HttpServletResponse httpServletResponse) throws IOException { +// @RequestMapping(value = "/listExp") +// public void reportExport(String projectName, Long devTypeId, +// String devcode,String pm, +// String productMode, String contractorNumber,String isSend, +// HttpServletRequest httpServletRequest, +// HttpServletResponse httpServletResponse) throws IOException { +// +// List list = deviceService.reportExport( projectName, +// devTypeId, devcode, pm, productMode, contractorNumber,isSend); +// FileInputStream fileInputStream = new FileInputStream(downloadPath + +// (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); +// try { +// httpServletResponse.setContentType("application/octet-stream"); +// httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); +// Map var = new HashMap<>(); +// var.put("list", list); +// ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); +// } catch (IOException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// httpServletResponse.getOutputStream().flush(); +// httpServletResponse.getOutputStream().close(); +// fileInputStream.close(); +// } +// } - List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); - FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); - Map var = new HashMap<>(); - var.put("list", list); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - } + + + /** + * 导出设备列表(长度超范围优化) + */ + @RequestMapping(value = "/listExp") + public void reportExport(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend) throws IOException { + + List list = deviceService.reportExport( projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceExportEnum.DEVICE_EXPORT, res); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 5f92336..d718327 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -37,7 +37,10 @@ List reportExport(String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); String getProjectBydevcode(String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 2e07102..bbf2d3d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -76,11 +76,12 @@ @Override - public List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm) { - List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + public List reportExport( String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = this.baseMapper.reportExport(projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); for (DeviceDto deviceDto : deviceDtoList) { deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java index 1ce57de..68c37f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -86,7 +86,7 @@ Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -99,8 +99,10 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { productRepairRecords.setDevTypeName(deviceService.getDevTypeBydevcode(productRepairRecords.getDevcode())); productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } } return new SuccessResponseData(super.packForBT(page)); } @@ -280,7 +282,10 @@ row.shutdown(); } }); - productRepairRecordsService.importContract(results); + Map resultMap = productRepairRecordsService.importContract(results); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } } } catch (Exception e) { e.printStackTrace(); @@ -291,21 +296,21 @@ @RequestMapping(value = "/getPhoto") - public void doPost(@RequestParam("id") Long id, HttpServletResponse response,String number) + public void doPost(@RequestParam("id") Long id, HttpServletResponse response, String number) throws ServletException, IOException { ProductRepairRecords repairRecords = productRepairRecordsService.selectById(id); if (ToolUtil.isNotEmpty(repairRecords.getPhotopath1())) { - FileUtil.downloadLocalFile(response,filePath+ repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath3())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java index b1162d7..c1f6792 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import java.util.List; +import java.util.Map; /** *

@@ -15,5 +16,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); - void importContract( List productRepairRecordsList); + Map importContract(List productRepairRecordsList); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java index 4095754..add13aa 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -16,9 +16,13 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.sql.Timestamp; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** *

@@ -44,7 +48,7 @@ public List reportExport(String devcode, String begTime, String endTime) { EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -56,32 +60,57 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + + if (ToolUtil.isNotEmpty(productRepairRecords.getReturntime())) { + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(), "yyyy-MM-dd HH:mm:ss")); + } } return productRepairRecordsList; } - @Override - public void importContract(List productRepairRecordsList) { + @Transactional + public Map importContract(List productRepairRecordsList) { + + Map resultMap = new HashMap<>(); + //验证设备编号是否存在 +// for (ProductRepairRecords repairRecords : productRepairRecordsList) { +// if (null == deviceService.getDeviceByCode(repairRecords.getDevcode())) { +// String msg = "编号:" + repairRecords.getDevcode() + "在系统中不存在"; +// boolean success = false; +// resultMap.put("msg", msg); +// resultMap.put("success", success); +// return resultMap; +// } +// } productRepairRecordsList.forEach(repairRecords -> { - if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + if (ToolUtil.isNotEmpty(repairRecords.getCheckName())) { Account user = accountService.findUserByName(repairRecords.getCheckName()); - repairRecords.setCheckmanId(user!=null?user.getId():null); + repairRecords.setCheckmanId(user != null ? user.getId() : null); } - if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + if (ToolUtil.isNotEmpty(repairRecords.getRepairName())) { Account user = accountService.findUserByName(repairRecords.getRepairName()); - repairRecords.setRepairmenId(user!=null?user.getId():null); + repairRecords.setRepairmenId(user != null ? user.getId() : null); } - repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? - Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); - repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? - Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + try { + repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? + Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); + repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? + Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + }catch (Exception e){ + System.out.println("日期格式不对编号:"+repairRecords.getDevcode()); + e.printStackTrace(); + } + }); this.insertBatch(productRepairRecordsList); + resultMap.put("success", true); + return resultMap; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java index dd04612..df91064 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -77,6 +77,7 @@ entityWrapper.eq("pro_id", payments.getProId()); entityWrapper.eq("reorder", payments.getReorder()); paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? DateUtil.parseTime(paytimeFmt) : null); paymentsService.insert(payments); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 0ca769c..6e52fd2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -29,7 +29,10 @@ List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, @Param("devcode") String devcode, - @Param("pm") String pm); + @Param("pm") String pm, + @Param("productMode") String productMode, + @Param("contractorNumber") String contractorNumber, + @Param("isSend") String isSend); String getProjectBydevcode(@Param("devcode") String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 7c11b75..ef58eb2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -29,15 +29,15 @@ FROM product_contract w WHERE 1=1 - and w.contract_factory like #{keyword1} + and w.contract_factory like '%${keyword1}%' - and w.contract_number like #{keyword3} + and w.contract_number like '%${keyword3}%' - and w.principal like #{name} + and w.principal like '%${name}%' diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index 3426519..c8614cd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -84,8 +84,11 @@ pd.`iccid`, pt.`cardType`, pt.`operator`, + pdt.`product_name` AS devTypeName , + pt.`devmode_id` AS productModel, + pc.`contract_number` AS contractorNumber, pd.`is_send` AS isSend, - pd.description + pd.description as descn FROM product_device pd LEFT JOIN product_batch pb ON pd.batch_id = pb.id @@ -93,6 +96,10 @@ ON pb.task_id = pt.id LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + LEFT JOIN product_contract pc + ON pc.`id`= pb.`contract_id` WHERE 1=1 @@ -104,9 +111,18 @@ and pd.`devcode` like '%${devcode}%' + + and pt.`devmode_id` = #{productMode} + + + and pc.`contract_number` like '%${contractorNumber}%' + and pp.`project_manager` = #{pm} + + and pd.`is_send` = #{isSend} + ORDER BY pd.`devcode` asc diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java new file mode 100644 index 0000000..76e859c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.system.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceExportEnum implements ExportExcelHeaderEnum { + + DEVICE_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devTypeName")); + add(new Header("项目简称", "projectSimpleName")); + add(new Header("运营商", "operator")); + add(new Header("卡类型", "cardType")); + add(new Header("IMEI号", "imei")); + add(new Header("ICCID号", "iccid")); + add(new Header("设备状况", "isSend")); + add(new Header("备注", "descn")); + }}, "deviceList.xlsx", "设备数据导出"); + + + /** + * 导出模板相对路径 + */ + private List

headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java index dd04da0..8b8d7d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.HashMap; @@ -93,7 +94,7 @@ EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(keyword1)) { - query.like("contractFactory", keyword1); + query.like("contract_factory", keyword1); } if (ToolUtil.isNotEmpty(keyword3)) { query.like("contract_number", keyword3); @@ -125,14 +126,21 @@ } public String getPaymentStatus(Contract contract) { + if(ToolUtil.isEmpty(contract.getContractAmount())||"0".equals(contract.getContractAmount())){ + return "0,0%"; + } Map paraMap = new HashMap<>(); paraMap.put("pro_id", contract.getId()); List paymentsList = paymentsService.selectByMap(paraMap); - float sum = 0; +// double sum = 0; + BigDecimal sum= new BigDecimal(0); for (Payments payments : paymentsList) { - sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + if(ToolUtil.isNotEmpty(payments.getMoney())){ + sum=sum.add(new BigDecimal(payments.getMoney())); + } +// sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); } - DecimalFormat df = new DecimalFormat("0"); - return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + DecimalFormat df = new DecimalFormat("#.##%"); + return sum.doubleValue() + "," + df.format(sum.doubleValue() / Double.valueOf(contract.getContractAmount())); } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java index 0c125d8..879d923 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -10,6 +10,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.List; /** @@ -31,17 +32,19 @@ EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("pro_id", proId); List paymentsList = this.selectList(entityWrapper); - long total = Long.valueOf(money); - long contractAmount = 0; + BigDecimal b1=new BigDecimal(money); + double contractAmount = 0; for (Payments payments : paymentsList) { if(reorder.equals(payments.getReorder())) continue; - total += ToolUtil.isNotEmpty(payments.getMoney()) ? - Long.valueOf(payments.getMoney()) : 0; + + if(ToolUtil.isNotEmpty(payments.getMoney())){ + b1=b1.add(new BigDecimal(payments.getMoney())); + } } Contract contract = contractService.selectById(proId); contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? - Long.valueOf(contract.getContractAmount()) : 0; - if (total > contractAmount) return true; + Double.valueOf(contract.getContractAmount()) : 0; + if (b1.doubleValue() > contractAmount) return true; return false; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java index 5e8b77b..d289b96 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -11,6 +11,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.List; /** @@ -32,17 +33,18 @@ EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("pro_id", proId); List reimburseList = this.selectList(entityWrapper); - long total = Long.valueOf(money); - long contractAmount = 0; + BigDecimal b1 = new BigDecimal(money); + double contractAmount = 0; for (Reimburse reimburse : reimburseList) { if (reorder.equals(reimburse.getReorder())) continue; - total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? - Long.valueOf(reimburse.getMoney()) : 0; + if (ToolUtil.isNotEmpty(reimburse.getMoney())) { + b1 = b1.add(new BigDecimal(reimburse.getMoney())); + } } Contract contract = contractService.selectById(proId); contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? - Long.valueOf(contract.getContractAmount()) : 0; - if (total > contractAmount) return true; + Double.valueOf(contract.getContractAmount()) : 0; + if (b1.doubleValue() > contractAmount) return true; return false; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java index 5d82777..1132eaf 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -205,7 +205,7 @@ @ResponseBody public Object getTask() { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("isstored", "1"); +// entityWrapper.eq("isstored", "1"); List taskList = taskService.selectList(entityWrapper); for (Task task : taskList) { Project project = projectService.selectById(task.getProjectId()); diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 29ac078..451de68 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -1,5 +1,6 @@ server: port: 8083 + maxPostSize: -1 maxHttpHeaderSize: 102400 ################### spring配置 ################### @@ -13,7 +14,7 @@ #flowable数据源和多数据源配置 casic: kaptcha-open: false #是否开启登录时验证码 (true/false) - nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram,/appDeviceLog/listPage,/appDeviceAdd/add,/appDeviceLog/deviceDetail,/appDeviceLog/add,/appDeviceAdd/fileUpload,/appDeviceAdd/findListByCodes,/appDeviceAdd/findModeCodeByCode,/deviceType/getUser,/project/getProject,/appDeviceLog/deletePhoto,/deviceType/deviceType,/productRepairRecords/add + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram,/appDeviceLog/listPage,/appDeviceAdd/add,/appDeviceLog/deviceDetail,/appDeviceLog/add,/appDeviceAdd/fileUpload,/appDeviceAdd/findListByCodes,/appDeviceAdd/findModeCodeByCode,/deviceType/getUser,/project/getProject,/appDeviceLog/deletePhoto,/deviceType/deviceType,/productRepairRecords/add,/appDeviceAdd/fileUploadMarker,/appDeviceAdd/getDevTypeLength,/appDeviceAdd/delete file-upload-path: C:\casic\tmp\ file-download-path: D:\tmp\ producerName: producer diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index 083caac..50fcc63 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -16,4 +16,7 @@ public interface IAppDeviceLogService extends IService { List getListByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java index fc3d0a4..701ff20 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java @@ -2,13 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.util.PhotoUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.awt.*; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; @@ -58,7 +62,52 @@ } @Override + public String fileUploadMarker(MultipartFile file, String text) throws IOException { + if (!file.isEmpty()) { +// String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String uuid = text.substring(text.indexOf("编号:")+3,text.indexOf("经度:"))+"_"+System.currentTimeMillis(); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + PhotoUtils.markImageByText(text,pathName,pathName,0,new Color(0,0,255),"JPG"); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } + + @Override public String findModeCodeByCode(String devcode) { return this.baseMapper.findModeCodeByCode(devcode); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 22a1665..e42f082 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; @@ -11,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author stylefeng123 @@ -23,7 +25,32 @@ @Override public List getListByCode(String devcode) { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("devcode",devcode); + entityWrapper.eq("devcode", devcode); return this.selectList(entityWrapper); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java new file mode 100644 index 0000000..1db9081 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.util; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; + + +/** + * Created by Administrator on 2015/2/25. + */ +public class PhotoUtils { + /** + * 给图片添加水印文字、可设置水印文字的旋转角度 + * + * @param logoText 要写入的文字 + * @param srcImgPath 源图片路径 + * @param newImagePath 新图片路径 + * @param degree 旋转角度 + * @param color 字体颜色 + * @param formaName 图片后缀 + */ + public static void markImageByText(String logoText, String srcImgPath, String newImagePath, Integer degree, Color color, String formaName) { + InputStream is = null; + OutputStream os = null; + try { + // 1、源图片 + java.awt.Image srcImg = ImageIO.read(new File(srcImgPath)); + BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB); + // 2、得到画笔对象 + Graphics2D g = buffImg.createGraphics(); + // 3、设置对线段的锯齿状边缘处理 + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), java.awt.Image.SCALE_SMOOTH), 0, 0, null); + // 4、设置水印旋转 + if (null != degree) { + g.rotate(Math.toRadians(degree), buffImg.getWidth() / 2, buffImg.getHeight() / 2); + } + // 5、设置水印文字颜色 + g.setColor(color); + // 6、设置水印文字Font + g.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, buffImg.getWidth() / 25)); + // 7、设置水印文字透明度 + g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1f)); + // 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y) + g.drawString(logoText, buffImg.getWidth() / 50, buffImg.getHeight() / 20); + // 9、释放资源 + g.dispose(); + // 10、生成图片 + os = new FileOutputStream(newImagePath); + ImageIO.write(buffImg, formaName, os); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (null != is) + is.close(); + } catch (Exception e) { + e.printStackTrace(); + } + try { + if (null != os) + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index ff8a381..679c266 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; @@ -10,8 +10,8 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dto.DeviceDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.Device; -import com.casic.missiles.modular.system.model.Task; import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -22,9 +22,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -40,7 +37,7 @@ */ @Controller @RequestMapping("/device") -public class DeviceController extends BaseController { +public class DeviceController extends ExportController { @Autowired @@ -158,32 +155,50 @@ /** * 导出设备列表 */ - @RequestMapping(value = "/listExp") - public void reportExport(String projectName, - Long devTypeId, - String devcode, - String pm, - HttpServletRequest httpServletRequest, - HttpServletResponse httpServletResponse) throws IOException { +// @RequestMapping(value = "/listExp") +// public void reportExport(String projectName, Long devTypeId, +// String devcode,String pm, +// String productMode, String contractorNumber,String isSend, +// HttpServletRequest httpServletRequest, +// HttpServletResponse httpServletResponse) throws IOException { +// +// List list = deviceService.reportExport( projectName, +// devTypeId, devcode, pm, productMode, contractorNumber,isSend); +// FileInputStream fileInputStream = new FileInputStream(downloadPath + +// (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); +// try { +// httpServletResponse.setContentType("application/octet-stream"); +// httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); +// Map var = new HashMap<>(); +// var.put("list", list); +// ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); +// } catch (IOException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// httpServletResponse.getOutputStream().flush(); +// httpServletResponse.getOutputStream().close(); +// fileInputStream.close(); +// } +// } - List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); - FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); - Map var = new HashMap<>(); - var.put("list", list); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - } + + + /** + * 导出设备列表(长度超范围优化) + */ + @RequestMapping(value = "/listExp") + public void reportExport(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend) throws IOException { + + List list = deviceService.reportExport( projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceExportEnum.DEVICE_EXPORT, res); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 5f92336..d718327 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -37,7 +37,10 @@ List reportExport(String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); String getProjectBydevcode(String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 2e07102..bbf2d3d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -76,11 +76,12 @@ @Override - public List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm) { - List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + public List reportExport( String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = this.baseMapper.reportExport(projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); for (DeviceDto deviceDto : deviceDtoList) { deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java index 1ce57de..68c37f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -86,7 +86,7 @@ Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -99,8 +99,10 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { productRepairRecords.setDevTypeName(deviceService.getDevTypeBydevcode(productRepairRecords.getDevcode())); productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } } return new SuccessResponseData(super.packForBT(page)); } @@ -280,7 +282,10 @@ row.shutdown(); } }); - productRepairRecordsService.importContract(results); + Map resultMap = productRepairRecordsService.importContract(results); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } } } catch (Exception e) { e.printStackTrace(); @@ -291,21 +296,21 @@ @RequestMapping(value = "/getPhoto") - public void doPost(@RequestParam("id") Long id, HttpServletResponse response,String number) + public void doPost(@RequestParam("id") Long id, HttpServletResponse response, String number) throws ServletException, IOException { ProductRepairRecords repairRecords = productRepairRecordsService.selectById(id); if (ToolUtil.isNotEmpty(repairRecords.getPhotopath1())) { - FileUtil.downloadLocalFile(response,filePath+ repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath3())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java index b1162d7..c1f6792 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import java.util.List; +import java.util.Map; /** *

@@ -15,5 +16,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); - void importContract( List productRepairRecordsList); + Map importContract(List productRepairRecordsList); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java index 4095754..add13aa 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -16,9 +16,13 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.sql.Timestamp; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** *

@@ -44,7 +48,7 @@ public List reportExport(String devcode, String begTime, String endTime) { EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -56,32 +60,57 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + + if (ToolUtil.isNotEmpty(productRepairRecords.getReturntime())) { + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(), "yyyy-MM-dd HH:mm:ss")); + } } return productRepairRecordsList; } - @Override - public void importContract(List productRepairRecordsList) { + @Transactional + public Map importContract(List productRepairRecordsList) { + + Map resultMap = new HashMap<>(); + //验证设备编号是否存在 +// for (ProductRepairRecords repairRecords : productRepairRecordsList) { +// if (null == deviceService.getDeviceByCode(repairRecords.getDevcode())) { +// String msg = "编号:" + repairRecords.getDevcode() + "在系统中不存在"; +// boolean success = false; +// resultMap.put("msg", msg); +// resultMap.put("success", success); +// return resultMap; +// } +// } productRepairRecordsList.forEach(repairRecords -> { - if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + if (ToolUtil.isNotEmpty(repairRecords.getCheckName())) { Account user = accountService.findUserByName(repairRecords.getCheckName()); - repairRecords.setCheckmanId(user!=null?user.getId():null); + repairRecords.setCheckmanId(user != null ? user.getId() : null); } - if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + if (ToolUtil.isNotEmpty(repairRecords.getRepairName())) { Account user = accountService.findUserByName(repairRecords.getRepairName()); - repairRecords.setRepairmenId(user!=null?user.getId():null); + repairRecords.setRepairmenId(user != null ? user.getId() : null); } - repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? - Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); - repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? - Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + try { + repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? + Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); + repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? + Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + }catch (Exception e){ + System.out.println("日期格式不对编号:"+repairRecords.getDevcode()); + e.printStackTrace(); + } + }); this.insertBatch(productRepairRecordsList); + resultMap.put("success", true); + return resultMap; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java index dd04612..df91064 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -77,6 +77,7 @@ entityWrapper.eq("pro_id", payments.getProId()); entityWrapper.eq("reorder", payments.getReorder()); paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? DateUtil.parseTime(paytimeFmt) : null); paymentsService.insert(payments); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 0ca769c..6e52fd2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -29,7 +29,10 @@ List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, @Param("devcode") String devcode, - @Param("pm") String pm); + @Param("pm") String pm, + @Param("productMode") String productMode, + @Param("contractorNumber") String contractorNumber, + @Param("isSend") String isSend); String getProjectBydevcode(@Param("devcode") String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 7c11b75..ef58eb2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -29,15 +29,15 @@ FROM product_contract w WHERE 1=1 - and w.contract_factory like #{keyword1} + and w.contract_factory like '%${keyword1}%' - and w.contract_number like #{keyword3} + and w.contract_number like '%${keyword3}%' - and w.principal like #{name} + and w.principal like '%${name}%' diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index 3426519..c8614cd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -84,8 +84,11 @@ pd.`iccid`, pt.`cardType`, pt.`operator`, + pdt.`product_name` AS devTypeName , + pt.`devmode_id` AS productModel, + pc.`contract_number` AS contractorNumber, pd.`is_send` AS isSend, - pd.description + pd.description as descn FROM product_device pd LEFT JOIN product_batch pb ON pd.batch_id = pb.id @@ -93,6 +96,10 @@ ON pb.task_id = pt.id LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + LEFT JOIN product_contract pc + ON pc.`id`= pb.`contract_id` WHERE 1=1 @@ -104,9 +111,18 @@ and pd.`devcode` like '%${devcode}%' + + and pt.`devmode_id` = #{productMode} + + + and pc.`contract_number` like '%${contractorNumber}%' + and pp.`project_manager` = #{pm} + + and pd.`is_send` = #{isSend} + ORDER BY pd.`devcode` asc diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java new file mode 100644 index 0000000..76e859c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.system.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceExportEnum implements ExportExcelHeaderEnum { + + DEVICE_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devTypeName")); + add(new Header("项目简称", "projectSimpleName")); + add(new Header("运营商", "operator")); + add(new Header("卡类型", "cardType")); + add(new Header("IMEI号", "imei")); + add(new Header("ICCID号", "iccid")); + add(new Header("设备状况", "isSend")); + add(new Header("备注", "descn")); + }}, "deviceList.xlsx", "设备数据导出"); + + + /** + * 导出模板相对路径 + */ + private List

headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java index dd04da0..8b8d7d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.HashMap; @@ -93,7 +94,7 @@ EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(keyword1)) { - query.like("contractFactory", keyword1); + query.like("contract_factory", keyword1); } if (ToolUtil.isNotEmpty(keyword3)) { query.like("contract_number", keyword3); @@ -125,14 +126,21 @@ } public String getPaymentStatus(Contract contract) { + if(ToolUtil.isEmpty(contract.getContractAmount())||"0".equals(contract.getContractAmount())){ + return "0,0%"; + } Map paraMap = new HashMap<>(); paraMap.put("pro_id", contract.getId()); List paymentsList = paymentsService.selectByMap(paraMap); - float sum = 0; +// double sum = 0; + BigDecimal sum= new BigDecimal(0); for (Payments payments : paymentsList) { - sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + if(ToolUtil.isNotEmpty(payments.getMoney())){ + sum=sum.add(new BigDecimal(payments.getMoney())); + } +// sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); } - DecimalFormat df = new DecimalFormat("0"); - return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + DecimalFormat df = new DecimalFormat("#.##%"); + return sum.doubleValue() + "," + df.format(sum.doubleValue() / Double.valueOf(contract.getContractAmount())); } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java index 0c125d8..879d923 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -10,6 +10,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.List; /** @@ -31,17 +32,19 @@ EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("pro_id", proId); List paymentsList = this.selectList(entityWrapper); - long total = Long.valueOf(money); - long contractAmount = 0; + BigDecimal b1=new BigDecimal(money); + double contractAmount = 0; for (Payments payments : paymentsList) { if(reorder.equals(payments.getReorder())) continue; - total += ToolUtil.isNotEmpty(payments.getMoney()) ? - Long.valueOf(payments.getMoney()) : 0; + + if(ToolUtil.isNotEmpty(payments.getMoney())){ + b1=b1.add(new BigDecimal(payments.getMoney())); + } } Contract contract = contractService.selectById(proId); contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? - Long.valueOf(contract.getContractAmount()) : 0; - if (total > contractAmount) return true; + Double.valueOf(contract.getContractAmount()) : 0; + if (b1.doubleValue() > contractAmount) return true; return false; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java index 5e8b77b..d289b96 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -11,6 +11,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.List; /** @@ -32,17 +33,18 @@ EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("pro_id", proId); List reimburseList = this.selectList(entityWrapper); - long total = Long.valueOf(money); - long contractAmount = 0; + BigDecimal b1 = new BigDecimal(money); + double contractAmount = 0; for (Reimburse reimburse : reimburseList) { if (reorder.equals(reimburse.getReorder())) continue; - total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? - Long.valueOf(reimburse.getMoney()) : 0; + if (ToolUtil.isNotEmpty(reimburse.getMoney())) { + b1 = b1.add(new BigDecimal(reimburse.getMoney())); + } } Contract contract = contractService.selectById(proId); contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? - Long.valueOf(contract.getContractAmount()) : 0; - if (total > contractAmount) return true; + Double.valueOf(contract.getContractAmount()) : 0; + if (b1.doubleValue() > contractAmount) return true; return false; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java index 5d82777..1132eaf 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -205,7 +205,7 @@ @ResponseBody public Object getTask() { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("isstored", "1"); +// entityWrapper.eq("isstored", "1"); List taskList = taskService.selectList(entityWrapper); for (Task task : taskList) { Project project = projectService.selectById(task.getProjectId()); diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 29ac078..451de68 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -1,5 +1,6 @@ server: port: 8083 + maxPostSize: -1 maxHttpHeaderSize: 102400 ################### spring配置 ################### @@ -13,7 +14,7 @@ #flowable数据源和多数据源配置 casic: kaptcha-open: false #是否开启登录时验证码 (true/false) - nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram,/appDeviceLog/listPage,/appDeviceAdd/add,/appDeviceLog/deviceDetail,/appDeviceLog/add,/appDeviceAdd/fileUpload,/appDeviceAdd/findListByCodes,/appDeviceAdd/findModeCodeByCode,/deviceType/getUser,/project/getProject,/appDeviceLog/deletePhoto,/deviceType/deviceType,/productRepairRecords/add + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram,/appDeviceLog/listPage,/appDeviceAdd/add,/appDeviceLog/deviceDetail,/appDeviceLog/add,/appDeviceAdd/fileUpload,/appDeviceAdd/findListByCodes,/appDeviceAdd/findModeCodeByCode,/deviceType/getUser,/project/getProject,/appDeviceLog/deletePhoto,/deviceType/deviceType,/productRepairRecords/add,/appDeviceAdd/fileUploadMarker,/appDeviceAdd/getDevTypeLength,/appDeviceAdd/delete file-upload-path: C:\casic\tmp\ file-download-path: D:\tmp\ producerName: producer diff --git a/casic-web/src/main/resources/excel/contentNull.xlsx b/casic-web/src/main/resources/excel/contentNull.xlsx new file mode 100644 index 0000000..e6823e0 --- /dev/null +++ b/casic-web/src/main/resources/excel/contentNull.xlsx Binary files differ diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index 083caac..50fcc63 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -16,4 +16,7 @@ public interface IAppDeviceLogService extends IService { List getListByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java index fc3d0a4..701ff20 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java @@ -2,13 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.util.PhotoUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.awt.*; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; @@ -58,7 +62,52 @@ } @Override + public String fileUploadMarker(MultipartFile file, String text) throws IOException { + if (!file.isEmpty()) { +// String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String uuid = text.substring(text.indexOf("编号:")+3,text.indexOf("经度:"))+"_"+System.currentTimeMillis(); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + PhotoUtils.markImageByText(text,pathName,pathName,0,new Color(0,0,255),"JPG"); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } + + @Override public String findModeCodeByCode(String devcode) { return this.baseMapper.findModeCodeByCode(devcode); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 22a1665..e42f082 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; @@ -11,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author stylefeng123 @@ -23,7 +25,32 @@ @Override public List getListByCode(String devcode) { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("devcode",devcode); + entityWrapper.eq("devcode", devcode); return this.selectList(entityWrapper); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java new file mode 100644 index 0000000..1db9081 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.util; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; + + +/** + * Created by Administrator on 2015/2/25. + */ +public class PhotoUtils { + /** + * 给图片添加水印文字、可设置水印文字的旋转角度 + * + * @param logoText 要写入的文字 + * @param srcImgPath 源图片路径 + * @param newImagePath 新图片路径 + * @param degree 旋转角度 + * @param color 字体颜色 + * @param formaName 图片后缀 + */ + public static void markImageByText(String logoText, String srcImgPath, String newImagePath, Integer degree, Color color, String formaName) { + InputStream is = null; + OutputStream os = null; + try { + // 1、源图片 + java.awt.Image srcImg = ImageIO.read(new File(srcImgPath)); + BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB); + // 2、得到画笔对象 + Graphics2D g = buffImg.createGraphics(); + // 3、设置对线段的锯齿状边缘处理 + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), java.awt.Image.SCALE_SMOOTH), 0, 0, null); + // 4、设置水印旋转 + if (null != degree) { + g.rotate(Math.toRadians(degree), buffImg.getWidth() / 2, buffImg.getHeight() / 2); + } + // 5、设置水印文字颜色 + g.setColor(color); + // 6、设置水印文字Font + g.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, buffImg.getWidth() / 25)); + // 7、设置水印文字透明度 + g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1f)); + // 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y) + g.drawString(logoText, buffImg.getWidth() / 50, buffImg.getHeight() / 20); + // 9、释放资源 + g.dispose(); + // 10、生成图片 + os = new FileOutputStream(newImagePath); + ImageIO.write(buffImg, formaName, os); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (null != is) + is.close(); + } catch (Exception e) { + e.printStackTrace(); + } + try { + if (null != os) + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index ff8a381..679c266 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; @@ -10,8 +10,8 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dto.DeviceDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.Device; -import com.casic.missiles.modular.system.model.Task; import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -22,9 +22,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -40,7 +37,7 @@ */ @Controller @RequestMapping("/device") -public class DeviceController extends BaseController { +public class DeviceController extends ExportController { @Autowired @@ -158,32 +155,50 @@ /** * 导出设备列表 */ - @RequestMapping(value = "/listExp") - public void reportExport(String projectName, - Long devTypeId, - String devcode, - String pm, - HttpServletRequest httpServletRequest, - HttpServletResponse httpServletResponse) throws IOException { +// @RequestMapping(value = "/listExp") +// public void reportExport(String projectName, Long devTypeId, +// String devcode,String pm, +// String productMode, String contractorNumber,String isSend, +// HttpServletRequest httpServletRequest, +// HttpServletResponse httpServletResponse) throws IOException { +// +// List list = deviceService.reportExport( projectName, +// devTypeId, devcode, pm, productMode, contractorNumber,isSend); +// FileInputStream fileInputStream = new FileInputStream(downloadPath + +// (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); +// try { +// httpServletResponse.setContentType("application/octet-stream"); +// httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); +// Map var = new HashMap<>(); +// var.put("list", list); +// ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); +// } catch (IOException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// httpServletResponse.getOutputStream().flush(); +// httpServletResponse.getOutputStream().close(); +// fileInputStream.close(); +// } +// } - List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); - FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); - Map var = new HashMap<>(); - var.put("list", list); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - } + + + /** + * 导出设备列表(长度超范围优化) + */ + @RequestMapping(value = "/listExp") + public void reportExport(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend) throws IOException { + + List list = deviceService.reportExport( projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceExportEnum.DEVICE_EXPORT, res); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 5f92336..d718327 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -37,7 +37,10 @@ List reportExport(String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); String getProjectBydevcode(String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 2e07102..bbf2d3d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -76,11 +76,12 @@ @Override - public List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm) { - List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + public List reportExport( String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = this.baseMapper.reportExport(projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); for (DeviceDto deviceDto : deviceDtoList) { deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java index 1ce57de..68c37f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -86,7 +86,7 @@ Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -99,8 +99,10 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { productRepairRecords.setDevTypeName(deviceService.getDevTypeBydevcode(productRepairRecords.getDevcode())); productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } } return new SuccessResponseData(super.packForBT(page)); } @@ -280,7 +282,10 @@ row.shutdown(); } }); - productRepairRecordsService.importContract(results); + Map resultMap = productRepairRecordsService.importContract(results); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } } } catch (Exception e) { e.printStackTrace(); @@ -291,21 +296,21 @@ @RequestMapping(value = "/getPhoto") - public void doPost(@RequestParam("id") Long id, HttpServletResponse response,String number) + public void doPost(@RequestParam("id") Long id, HttpServletResponse response, String number) throws ServletException, IOException { ProductRepairRecords repairRecords = productRepairRecordsService.selectById(id); if (ToolUtil.isNotEmpty(repairRecords.getPhotopath1())) { - FileUtil.downloadLocalFile(response,filePath+ repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath3())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java index b1162d7..c1f6792 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import java.util.List; +import java.util.Map; /** *

@@ -15,5 +16,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); - void importContract( List productRepairRecordsList); + Map importContract(List productRepairRecordsList); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java index 4095754..add13aa 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -16,9 +16,13 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.sql.Timestamp; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** *

@@ -44,7 +48,7 @@ public List reportExport(String devcode, String begTime, String endTime) { EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -56,32 +60,57 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + + if (ToolUtil.isNotEmpty(productRepairRecords.getReturntime())) { + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(), "yyyy-MM-dd HH:mm:ss")); + } } return productRepairRecordsList; } - @Override - public void importContract(List productRepairRecordsList) { + @Transactional + public Map importContract(List productRepairRecordsList) { + + Map resultMap = new HashMap<>(); + //验证设备编号是否存在 +// for (ProductRepairRecords repairRecords : productRepairRecordsList) { +// if (null == deviceService.getDeviceByCode(repairRecords.getDevcode())) { +// String msg = "编号:" + repairRecords.getDevcode() + "在系统中不存在"; +// boolean success = false; +// resultMap.put("msg", msg); +// resultMap.put("success", success); +// return resultMap; +// } +// } productRepairRecordsList.forEach(repairRecords -> { - if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + if (ToolUtil.isNotEmpty(repairRecords.getCheckName())) { Account user = accountService.findUserByName(repairRecords.getCheckName()); - repairRecords.setCheckmanId(user!=null?user.getId():null); + repairRecords.setCheckmanId(user != null ? user.getId() : null); } - if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + if (ToolUtil.isNotEmpty(repairRecords.getRepairName())) { Account user = accountService.findUserByName(repairRecords.getRepairName()); - repairRecords.setRepairmenId(user!=null?user.getId():null); + repairRecords.setRepairmenId(user != null ? user.getId() : null); } - repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? - Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); - repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? - Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + try { + repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? + Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); + repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? + Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + }catch (Exception e){ + System.out.println("日期格式不对编号:"+repairRecords.getDevcode()); + e.printStackTrace(); + } + }); this.insertBatch(productRepairRecordsList); + resultMap.put("success", true); + return resultMap; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java index dd04612..df91064 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -77,6 +77,7 @@ entityWrapper.eq("pro_id", payments.getProId()); entityWrapper.eq("reorder", payments.getReorder()); paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? DateUtil.parseTime(paytimeFmt) : null); paymentsService.insert(payments); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 0ca769c..6e52fd2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -29,7 +29,10 @@ List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, @Param("devcode") String devcode, - @Param("pm") String pm); + @Param("pm") String pm, + @Param("productMode") String productMode, + @Param("contractorNumber") String contractorNumber, + @Param("isSend") String isSend); String getProjectBydevcode(@Param("devcode") String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 7c11b75..ef58eb2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -29,15 +29,15 @@ FROM product_contract w WHERE 1=1 - and w.contract_factory like #{keyword1} + and w.contract_factory like '%${keyword1}%' - and w.contract_number like #{keyword3} + and w.contract_number like '%${keyword3}%' - and w.principal like #{name} + and w.principal like '%${name}%' diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index 3426519..c8614cd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -84,8 +84,11 @@ pd.`iccid`, pt.`cardType`, pt.`operator`, + pdt.`product_name` AS devTypeName , + pt.`devmode_id` AS productModel, + pc.`contract_number` AS contractorNumber, pd.`is_send` AS isSend, - pd.description + pd.description as descn FROM product_device pd LEFT JOIN product_batch pb ON pd.batch_id = pb.id @@ -93,6 +96,10 @@ ON pb.task_id = pt.id LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + LEFT JOIN product_contract pc + ON pc.`id`= pb.`contract_id` WHERE 1=1 @@ -104,9 +111,18 @@ and pd.`devcode` like '%${devcode}%' + + and pt.`devmode_id` = #{productMode} + + + and pc.`contract_number` like '%${contractorNumber}%' + and pp.`project_manager` = #{pm} + + and pd.`is_send` = #{isSend} + ORDER BY pd.`devcode` asc diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java new file mode 100644 index 0000000..76e859c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.system.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceExportEnum implements ExportExcelHeaderEnum { + + DEVICE_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devTypeName")); + add(new Header("项目简称", "projectSimpleName")); + add(new Header("运营商", "operator")); + add(new Header("卡类型", "cardType")); + add(new Header("IMEI号", "imei")); + add(new Header("ICCID号", "iccid")); + add(new Header("设备状况", "isSend")); + add(new Header("备注", "descn")); + }}, "deviceList.xlsx", "设备数据导出"); + + + /** + * 导出模板相对路径 + */ + private List

headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java index dd04da0..8b8d7d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.HashMap; @@ -93,7 +94,7 @@ EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(keyword1)) { - query.like("contractFactory", keyword1); + query.like("contract_factory", keyword1); } if (ToolUtil.isNotEmpty(keyword3)) { query.like("contract_number", keyword3); @@ -125,14 +126,21 @@ } public String getPaymentStatus(Contract contract) { + if(ToolUtil.isEmpty(contract.getContractAmount())||"0".equals(contract.getContractAmount())){ + return "0,0%"; + } Map paraMap = new HashMap<>(); paraMap.put("pro_id", contract.getId()); List paymentsList = paymentsService.selectByMap(paraMap); - float sum = 0; +// double sum = 0; + BigDecimal sum= new BigDecimal(0); for (Payments payments : paymentsList) { - sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + if(ToolUtil.isNotEmpty(payments.getMoney())){ + sum=sum.add(new BigDecimal(payments.getMoney())); + } +// sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); } - DecimalFormat df = new DecimalFormat("0"); - return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + DecimalFormat df = new DecimalFormat("#.##%"); + return sum.doubleValue() + "," + df.format(sum.doubleValue() / Double.valueOf(contract.getContractAmount())); } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java index 0c125d8..879d923 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -10,6 +10,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.List; /** @@ -31,17 +32,19 @@ EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("pro_id", proId); List paymentsList = this.selectList(entityWrapper); - long total = Long.valueOf(money); - long contractAmount = 0; + BigDecimal b1=new BigDecimal(money); + double contractAmount = 0; for (Payments payments : paymentsList) { if(reorder.equals(payments.getReorder())) continue; - total += ToolUtil.isNotEmpty(payments.getMoney()) ? - Long.valueOf(payments.getMoney()) : 0; + + if(ToolUtil.isNotEmpty(payments.getMoney())){ + b1=b1.add(new BigDecimal(payments.getMoney())); + } } Contract contract = contractService.selectById(proId); contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? - Long.valueOf(contract.getContractAmount()) : 0; - if (total > contractAmount) return true; + Double.valueOf(contract.getContractAmount()) : 0; + if (b1.doubleValue() > contractAmount) return true; return false; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java index 5e8b77b..d289b96 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -11,6 +11,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.List; /** @@ -32,17 +33,18 @@ EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("pro_id", proId); List reimburseList = this.selectList(entityWrapper); - long total = Long.valueOf(money); - long contractAmount = 0; + BigDecimal b1 = new BigDecimal(money); + double contractAmount = 0; for (Reimburse reimburse : reimburseList) { if (reorder.equals(reimburse.getReorder())) continue; - total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? - Long.valueOf(reimburse.getMoney()) : 0; + if (ToolUtil.isNotEmpty(reimburse.getMoney())) { + b1 = b1.add(new BigDecimal(reimburse.getMoney())); + } } Contract contract = contractService.selectById(proId); contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? - Long.valueOf(contract.getContractAmount()) : 0; - if (total > contractAmount) return true; + Double.valueOf(contract.getContractAmount()) : 0; + if (b1.doubleValue() > contractAmount) return true; return false; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java index 5d82777..1132eaf 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -205,7 +205,7 @@ @ResponseBody public Object getTask() { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("isstored", "1"); +// entityWrapper.eq("isstored", "1"); List taskList = taskService.selectList(entityWrapper); for (Task task : taskList) { Project project = projectService.selectById(task.getProjectId()); diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 29ac078..451de68 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -1,5 +1,6 @@ server: port: 8083 + maxPostSize: -1 maxHttpHeaderSize: 102400 ################### spring配置 ################### @@ -13,7 +14,7 @@ #flowable数据源和多数据源配置 casic: kaptcha-open: false #是否开启登录时验证码 (true/false) - nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram,/appDeviceLog/listPage,/appDeviceAdd/add,/appDeviceLog/deviceDetail,/appDeviceLog/add,/appDeviceAdd/fileUpload,/appDeviceAdd/findListByCodes,/appDeviceAdd/findModeCodeByCode,/deviceType/getUser,/project/getProject,/appDeviceLog/deletePhoto,/deviceType/deviceType,/productRepairRecords/add + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram,/appDeviceLog/listPage,/appDeviceAdd/add,/appDeviceLog/deviceDetail,/appDeviceLog/add,/appDeviceAdd/fileUpload,/appDeviceAdd/findListByCodes,/appDeviceAdd/findModeCodeByCode,/deviceType/getUser,/project/getProject,/appDeviceLog/deletePhoto,/deviceType/deviceType,/productRepairRecords/add,/appDeviceAdd/fileUploadMarker,/appDeviceAdd/getDevTypeLength,/appDeviceAdd/delete file-upload-path: C:\casic\tmp\ file-download-path: D:\tmp\ producerName: producer diff --git a/casic-web/src/main/resources/excel/contentNull.xlsx b/casic-web/src/main/resources/excel/contentNull.xlsx new file mode 100644 index 0000000..e6823e0 --- /dev/null +++ b/casic-web/src/main/resources/excel/contentNull.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceImp.xlsx b/casic-web/src/main/resources/excel/deviceImp.xlsx index 0c6f31f..3869021 100644 --- a/casic-web/src/main/resources/excel/deviceImp.xlsx +++ b/casic-web/src/main/resources/excel/deviceImp.xlsx Binary files differ diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index 083caac..50fcc63 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -16,4 +16,7 @@ public interface IAppDeviceLogService extends IService { List getListByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java index fc3d0a4..701ff20 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java @@ -2,13 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.util.PhotoUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.awt.*; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; @@ -58,7 +62,52 @@ } @Override + public String fileUploadMarker(MultipartFile file, String text) throws IOException { + if (!file.isEmpty()) { +// String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String uuid = text.substring(text.indexOf("编号:")+3,text.indexOf("经度:"))+"_"+System.currentTimeMillis(); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + PhotoUtils.markImageByText(text,pathName,pathName,0,new Color(0,0,255),"JPG"); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } + + @Override public String findModeCodeByCode(String devcode) { return this.baseMapper.findModeCodeByCode(devcode); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 22a1665..e42f082 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; @@ -11,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author stylefeng123 @@ -23,7 +25,32 @@ @Override public List getListByCode(String devcode) { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("devcode",devcode); + entityWrapper.eq("devcode", devcode); return this.selectList(entityWrapper); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java new file mode 100644 index 0000000..1db9081 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.util; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; + + +/** + * Created by Administrator on 2015/2/25. + */ +public class PhotoUtils { + /** + * 给图片添加水印文字、可设置水印文字的旋转角度 + * + * @param logoText 要写入的文字 + * @param srcImgPath 源图片路径 + * @param newImagePath 新图片路径 + * @param degree 旋转角度 + * @param color 字体颜色 + * @param formaName 图片后缀 + */ + public static void markImageByText(String logoText, String srcImgPath, String newImagePath, Integer degree, Color color, String formaName) { + InputStream is = null; + OutputStream os = null; + try { + // 1、源图片 + java.awt.Image srcImg = ImageIO.read(new File(srcImgPath)); + BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB); + // 2、得到画笔对象 + Graphics2D g = buffImg.createGraphics(); + // 3、设置对线段的锯齿状边缘处理 + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), java.awt.Image.SCALE_SMOOTH), 0, 0, null); + // 4、设置水印旋转 + if (null != degree) { + g.rotate(Math.toRadians(degree), buffImg.getWidth() / 2, buffImg.getHeight() / 2); + } + // 5、设置水印文字颜色 + g.setColor(color); + // 6、设置水印文字Font + g.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, buffImg.getWidth() / 25)); + // 7、设置水印文字透明度 + g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1f)); + // 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y) + g.drawString(logoText, buffImg.getWidth() / 50, buffImg.getHeight() / 20); + // 9、释放资源 + g.dispose(); + // 10、生成图片 + os = new FileOutputStream(newImagePath); + ImageIO.write(buffImg, formaName, os); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (null != is) + is.close(); + } catch (Exception e) { + e.printStackTrace(); + } + try { + if (null != os) + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index ff8a381..679c266 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; @@ -10,8 +10,8 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dto.DeviceDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.Device; -import com.casic.missiles.modular.system.model.Task; import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -22,9 +22,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -40,7 +37,7 @@ */ @Controller @RequestMapping("/device") -public class DeviceController extends BaseController { +public class DeviceController extends ExportController { @Autowired @@ -158,32 +155,50 @@ /** * 导出设备列表 */ - @RequestMapping(value = "/listExp") - public void reportExport(String projectName, - Long devTypeId, - String devcode, - String pm, - HttpServletRequest httpServletRequest, - HttpServletResponse httpServletResponse) throws IOException { +// @RequestMapping(value = "/listExp") +// public void reportExport(String projectName, Long devTypeId, +// String devcode,String pm, +// String productMode, String contractorNumber,String isSend, +// HttpServletRequest httpServletRequest, +// HttpServletResponse httpServletResponse) throws IOException { +// +// List list = deviceService.reportExport( projectName, +// devTypeId, devcode, pm, productMode, contractorNumber,isSend); +// FileInputStream fileInputStream = new FileInputStream(downloadPath + +// (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); +// try { +// httpServletResponse.setContentType("application/octet-stream"); +// httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); +// Map var = new HashMap<>(); +// var.put("list", list); +// ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); +// } catch (IOException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// httpServletResponse.getOutputStream().flush(); +// httpServletResponse.getOutputStream().close(); +// fileInputStream.close(); +// } +// } - List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); - FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); - Map var = new HashMap<>(); - var.put("list", list); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - } + + + /** + * 导出设备列表(长度超范围优化) + */ + @RequestMapping(value = "/listExp") + public void reportExport(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend) throws IOException { + + List list = deviceService.reportExport( projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceExportEnum.DEVICE_EXPORT, res); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 5f92336..d718327 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -37,7 +37,10 @@ List reportExport(String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); String getProjectBydevcode(String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 2e07102..bbf2d3d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -76,11 +76,12 @@ @Override - public List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm) { - List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + public List reportExport( String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = this.baseMapper.reportExport(projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); for (DeviceDto deviceDto : deviceDtoList) { deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java index 1ce57de..68c37f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -86,7 +86,7 @@ Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -99,8 +99,10 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { productRepairRecords.setDevTypeName(deviceService.getDevTypeBydevcode(productRepairRecords.getDevcode())); productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } } return new SuccessResponseData(super.packForBT(page)); } @@ -280,7 +282,10 @@ row.shutdown(); } }); - productRepairRecordsService.importContract(results); + Map resultMap = productRepairRecordsService.importContract(results); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } } } catch (Exception e) { e.printStackTrace(); @@ -291,21 +296,21 @@ @RequestMapping(value = "/getPhoto") - public void doPost(@RequestParam("id") Long id, HttpServletResponse response,String number) + public void doPost(@RequestParam("id") Long id, HttpServletResponse response, String number) throws ServletException, IOException { ProductRepairRecords repairRecords = productRepairRecordsService.selectById(id); if (ToolUtil.isNotEmpty(repairRecords.getPhotopath1())) { - FileUtil.downloadLocalFile(response,filePath+ repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath3())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java index b1162d7..c1f6792 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import java.util.List; +import java.util.Map; /** *

@@ -15,5 +16,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); - void importContract( List productRepairRecordsList); + Map importContract(List productRepairRecordsList); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java index 4095754..add13aa 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -16,9 +16,13 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.sql.Timestamp; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** *

@@ -44,7 +48,7 @@ public List reportExport(String devcode, String begTime, String endTime) { EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -56,32 +60,57 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + + if (ToolUtil.isNotEmpty(productRepairRecords.getReturntime())) { + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(), "yyyy-MM-dd HH:mm:ss")); + } } return productRepairRecordsList; } - @Override - public void importContract(List productRepairRecordsList) { + @Transactional + public Map importContract(List productRepairRecordsList) { + + Map resultMap = new HashMap<>(); + //验证设备编号是否存在 +// for (ProductRepairRecords repairRecords : productRepairRecordsList) { +// if (null == deviceService.getDeviceByCode(repairRecords.getDevcode())) { +// String msg = "编号:" + repairRecords.getDevcode() + "在系统中不存在"; +// boolean success = false; +// resultMap.put("msg", msg); +// resultMap.put("success", success); +// return resultMap; +// } +// } productRepairRecordsList.forEach(repairRecords -> { - if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + if (ToolUtil.isNotEmpty(repairRecords.getCheckName())) { Account user = accountService.findUserByName(repairRecords.getCheckName()); - repairRecords.setCheckmanId(user!=null?user.getId():null); + repairRecords.setCheckmanId(user != null ? user.getId() : null); } - if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + if (ToolUtil.isNotEmpty(repairRecords.getRepairName())) { Account user = accountService.findUserByName(repairRecords.getRepairName()); - repairRecords.setRepairmenId(user!=null?user.getId():null); + repairRecords.setRepairmenId(user != null ? user.getId() : null); } - repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? - Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); - repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? - Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + try { + repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? + Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); + repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? + Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + }catch (Exception e){ + System.out.println("日期格式不对编号:"+repairRecords.getDevcode()); + e.printStackTrace(); + } + }); this.insertBatch(productRepairRecordsList); + resultMap.put("success", true); + return resultMap; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java index dd04612..df91064 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -77,6 +77,7 @@ entityWrapper.eq("pro_id", payments.getProId()); entityWrapper.eq("reorder", payments.getReorder()); paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? DateUtil.parseTime(paytimeFmt) : null); paymentsService.insert(payments); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 0ca769c..6e52fd2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -29,7 +29,10 @@ List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, @Param("devcode") String devcode, - @Param("pm") String pm); + @Param("pm") String pm, + @Param("productMode") String productMode, + @Param("contractorNumber") String contractorNumber, + @Param("isSend") String isSend); String getProjectBydevcode(@Param("devcode") String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 7c11b75..ef58eb2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -29,15 +29,15 @@ FROM product_contract w WHERE 1=1 - and w.contract_factory like #{keyword1} + and w.contract_factory like '%${keyword1}%' - and w.contract_number like #{keyword3} + and w.contract_number like '%${keyword3}%' - and w.principal like #{name} + and w.principal like '%${name}%' diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index 3426519..c8614cd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -84,8 +84,11 @@ pd.`iccid`, pt.`cardType`, pt.`operator`, + pdt.`product_name` AS devTypeName , + pt.`devmode_id` AS productModel, + pc.`contract_number` AS contractorNumber, pd.`is_send` AS isSend, - pd.description + pd.description as descn FROM product_device pd LEFT JOIN product_batch pb ON pd.batch_id = pb.id @@ -93,6 +96,10 @@ ON pb.task_id = pt.id LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + LEFT JOIN product_contract pc + ON pc.`id`= pb.`contract_id` WHERE 1=1 @@ -104,9 +111,18 @@ and pd.`devcode` like '%${devcode}%' + + and pt.`devmode_id` = #{productMode} + + + and pc.`contract_number` like '%${contractorNumber}%' + and pp.`project_manager` = #{pm} + + and pd.`is_send` = #{isSend} + ORDER BY pd.`devcode` asc diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java new file mode 100644 index 0000000..76e859c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.system.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceExportEnum implements ExportExcelHeaderEnum { + + DEVICE_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devTypeName")); + add(new Header("项目简称", "projectSimpleName")); + add(new Header("运营商", "operator")); + add(new Header("卡类型", "cardType")); + add(new Header("IMEI号", "imei")); + add(new Header("ICCID号", "iccid")); + add(new Header("设备状况", "isSend")); + add(new Header("备注", "descn")); + }}, "deviceList.xlsx", "设备数据导出"); + + + /** + * 导出模板相对路径 + */ + private List

headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java index dd04da0..8b8d7d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.HashMap; @@ -93,7 +94,7 @@ EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(keyword1)) { - query.like("contractFactory", keyword1); + query.like("contract_factory", keyword1); } if (ToolUtil.isNotEmpty(keyword3)) { query.like("contract_number", keyword3); @@ -125,14 +126,21 @@ } public String getPaymentStatus(Contract contract) { + if(ToolUtil.isEmpty(contract.getContractAmount())||"0".equals(contract.getContractAmount())){ + return "0,0%"; + } Map paraMap = new HashMap<>(); paraMap.put("pro_id", contract.getId()); List paymentsList = paymentsService.selectByMap(paraMap); - float sum = 0; +// double sum = 0; + BigDecimal sum= new BigDecimal(0); for (Payments payments : paymentsList) { - sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + if(ToolUtil.isNotEmpty(payments.getMoney())){ + sum=sum.add(new BigDecimal(payments.getMoney())); + } +// sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); } - DecimalFormat df = new DecimalFormat("0"); - return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + DecimalFormat df = new DecimalFormat("#.##%"); + return sum.doubleValue() + "," + df.format(sum.doubleValue() / Double.valueOf(contract.getContractAmount())); } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java index 0c125d8..879d923 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -10,6 +10,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.List; /** @@ -31,17 +32,19 @@ EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("pro_id", proId); List paymentsList = this.selectList(entityWrapper); - long total = Long.valueOf(money); - long contractAmount = 0; + BigDecimal b1=new BigDecimal(money); + double contractAmount = 0; for (Payments payments : paymentsList) { if(reorder.equals(payments.getReorder())) continue; - total += ToolUtil.isNotEmpty(payments.getMoney()) ? - Long.valueOf(payments.getMoney()) : 0; + + if(ToolUtil.isNotEmpty(payments.getMoney())){ + b1=b1.add(new BigDecimal(payments.getMoney())); + } } Contract contract = contractService.selectById(proId); contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? - Long.valueOf(contract.getContractAmount()) : 0; - if (total > contractAmount) return true; + Double.valueOf(contract.getContractAmount()) : 0; + if (b1.doubleValue() > contractAmount) return true; return false; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java index 5e8b77b..d289b96 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -11,6 +11,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.List; /** @@ -32,17 +33,18 @@ EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("pro_id", proId); List reimburseList = this.selectList(entityWrapper); - long total = Long.valueOf(money); - long contractAmount = 0; + BigDecimal b1 = new BigDecimal(money); + double contractAmount = 0; for (Reimburse reimburse : reimburseList) { if (reorder.equals(reimburse.getReorder())) continue; - total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? - Long.valueOf(reimburse.getMoney()) : 0; + if (ToolUtil.isNotEmpty(reimburse.getMoney())) { + b1 = b1.add(new BigDecimal(reimburse.getMoney())); + } } Contract contract = contractService.selectById(proId); contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? - Long.valueOf(contract.getContractAmount()) : 0; - if (total > contractAmount) return true; + Double.valueOf(contract.getContractAmount()) : 0; + if (b1.doubleValue() > contractAmount) return true; return false; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java index 5d82777..1132eaf 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -205,7 +205,7 @@ @ResponseBody public Object getTask() { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("isstored", "1"); +// entityWrapper.eq("isstored", "1"); List taskList = taskService.selectList(entityWrapper); for (Task task : taskList) { Project project = projectService.selectById(task.getProjectId()); diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 29ac078..451de68 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -1,5 +1,6 @@ server: port: 8083 + maxPostSize: -1 maxHttpHeaderSize: 102400 ################### spring配置 ################### @@ -13,7 +14,7 @@ #flowable数据源和多数据源配置 casic: kaptcha-open: false #是否开启登录时验证码 (true/false) - nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram,/appDeviceLog/listPage,/appDeviceAdd/add,/appDeviceLog/deviceDetail,/appDeviceLog/add,/appDeviceAdd/fileUpload,/appDeviceAdd/findListByCodes,/appDeviceAdd/findModeCodeByCode,/deviceType/getUser,/project/getProject,/appDeviceLog/deletePhoto,/deviceType/deviceType,/productRepairRecords/add + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram,/appDeviceLog/listPage,/appDeviceAdd/add,/appDeviceLog/deviceDetail,/appDeviceLog/add,/appDeviceAdd/fileUpload,/appDeviceAdd/findListByCodes,/appDeviceAdd/findModeCodeByCode,/deviceType/getUser,/project/getProject,/appDeviceLog/deletePhoto,/deviceType/deviceType,/productRepairRecords/add,/appDeviceAdd/fileUploadMarker,/appDeviceAdd/getDevTypeLength,/appDeviceAdd/delete file-upload-path: C:\casic\tmp\ file-download-path: D:\tmp\ producerName: producer diff --git a/casic-web/src/main/resources/excel/contentNull.xlsx b/casic-web/src/main/resources/excel/contentNull.xlsx new file mode 100644 index 0000000..e6823e0 --- /dev/null +++ b/casic-web/src/main/resources/excel/contentNull.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceImp.xlsx b/casic-web/src/main/resources/excel/deviceImp.xlsx index 0c6f31f..3869021 100644 --- a/casic-web/src/main/resources/excel/deviceImp.xlsx +++ b/casic-web/src/main/resources/excel/deviceImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/repairsImp.xlsx b/casic-web/src/main/resources/excel/repairsImp.xlsx index 2202523..af948e2 100644 --- a/casic-web/src/main/resources/excel/repairsImp.xlsx +++ b/casic-web/src/main/resources/excel/repairsImp.xlsx Binary files differ diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java index 255c269..330432c 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceAddController.java @@ -2,36 +2,33 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.common.service.ICommonPermissionService; -import com.casic.missiles.core.common.service.ICommonUserService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dto.SelectDTO; +import com.casic.missiles.modular.app.enums.DeviceBaseExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; import com.casic.missiles.modular.app.service.IAppDeviceLogService; import com.casic.missiles.modular.system.model.Dict; -import com.casic.missiles.service.ICasicFileService; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; 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.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.*; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * 施工添加设备控制器 @@ -41,7 +38,7 @@ */ @Controller @RequestMapping("/appDeviceAdd") -public class AppDeviceAddController extends BaseController { +public class AppDeviceAddController extends ExportController { @Resource @@ -81,7 +78,7 @@ @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { - if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + if (ToolUtil.isEmpty(appDeviceAdd.getDescription())) { appDeviceAdd.setDescription("安装设备"); } //新增时验证设备编号是否已经存在 @@ -101,12 +98,18 @@ } /** - * 删除施工添加设备 + * 删除施工日志和运维记录 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam String appDeviceAddId) { - appDeviceAddService.deleteById(appDeviceAddId); + AppDeviceAdd appDeviceAdd = appDeviceAddService.selectById(Long.valueOf(appDeviceAddId)); + if (ToolUtil.isNotEmpty(appDeviceAdd) && ToolUtil.isNotEmpty(appDeviceAdd.getDevcode())) { + EntityWrapper ew = new EntityWrapper<>(); + ew.eq("devcode", appDeviceAdd.getDevcode()); + appDeviceLogService.delete(ew); + } + appDeviceAddService.deleteById(Long.valueOf(appDeviceAddId)); return ResponseData.success(); } @@ -132,10 +135,16 @@ @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + public Object imageUpload(MultipartFile file) throws IOException { return ResponseData.success(appDeviceAddService.saveFile(file)); } + @RequestMapping({"/fileUploadMarker"}) + @ResponseBody + public Object fileUploadMarker(MultipartFile file, String text) throws IOException { + return ResponseData.success(appDeviceAddService.fileUploadMarker(file, text)); + } + // @RequestMapping({"/fileUpload"}) // @ResponseBody @@ -158,6 +167,13 @@ return selectDTOList; } + //获取设备类型编号长度 + @RequestMapping({"/getDevTypeLength"}) + @ResponseBody + public Object getDevTypeLength(String code) throws UnsupportedEncodingException { + return ResponseData.success(permissionService.getDictNameByCode("devTypeLength", java.net.URLDecoder.decode(code, "utf-8"))); + } + /** * 按照设备编号查询 @@ -166,7 +182,7 @@ @ResponseBody public Object findListByCodes(String devcodes) { List list = ToolUtil.isNotEmpty(devcodes) ? - Arrays.asList(devcodes.split(",")) : + Arrays.asList(devcodes.split("\\n")) : new ArrayList() {{ add(""); }}; @@ -175,11 +191,32 @@ return ResponseData.success(appDeviceAddService.selectList(query)); } - /**a * 按照设备编号查询 + /*** 按照设备编号查询 */ @RequestMapping(value = "/findModeCodeByCode") @ResponseBody public Object findModeCodeByCode(String devcode) { return appDeviceAddService.findModeCodeByCode(devcode); } + + /** + * 设备基础信息导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceAddService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(appDeviceAdd -> { + appDeviceAdd.setWelltype(permissionService.getDictNameByCode("sluicewellType", appDeviceAdd.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceBaseExportEnum.DeviceBase_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java index 8cb1867..c05efc4 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/controller/AppDeviceLogController.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.app.enums.DeviceLogExportEnum; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceAddService; @@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +34,7 @@ */ @Controller @RequestMapping("/appDeviceLog") -public class AppDeviceLogController extends BaseController { +public class AppDeviceLogController extends ExportController { private static String specialStr = "undefined"; @Resource @@ -37,23 +42,25 @@ @Resource IAppDeviceAddService appDeviceAddService; + @Resource + ICommonPermissionService permissionService; /** * 获取施工添加设备列表 */ - @RequestMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return appDeviceLogService.selectList(null); - } +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return appDeviceLogService.selectList(null); +// } /** * 获取施工添加设备分页列表 */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String devcode, String devtype, String installtimeFmt, String project) { + public Object listPage(String devcode, String devtype, String installtimeFmt, String project, String installPerson) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode) && (!(specialStr.equals(devcode)))) { @@ -63,15 +70,18 @@ String startTime = installtimeFmt.split("~")[0].trim(); String endTime = installtimeFmt.split("~")[1].trim(); if (ToolUtil.isNotEmpty(startTime)) { - query.ge("installtime", DateUtil.parseTime(startTime+" 00:00:00")); + query.ge("installtime", DateUtil.parseTime(startTime + " 00:00:00")); } if (ToolUtil.isNotEmpty(endTime)) { - query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); } + if (ToolUtil.isNotEmpty(installPerson) && (!(specialStr.equals(installPerson)))) { + query.eq("installperson", installPerson); + } if (ToolUtil.isNotEmpty(devtype) && (!(specialStr.equals(devtype)))) { query.eq("devicetype", devtype); } @@ -157,7 +167,7 @@ appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs.replace(";;",";")); + appDeviceAdd.setLogs(logs.replace(";;", ";")); } if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); @@ -169,18 +179,18 @@ @RequestMapping(value = "/deletePhoto") @ResponseBody - public Object deletePhoto(String devcode,String pathIndex){ + public Object deletePhoto(String devcode, String pathIndex) { EntityWrapper query = new EntityWrapper<>(); query.eq("devcode", devcode); query.orderBy("id", false); List appDeviceLogList = appDeviceLogService.selectList(query); - if(appDeviceLogList!=null&&appDeviceLogList.size()>0){ + if (appDeviceLogList != null && appDeviceLogList.size() > 0) { AppDeviceLog appDeviceLog = appDeviceLogList.get(0); - if("0".equals(pathIndex)){ + if ("0".equals(pathIndex)) { appDeviceLog.setPhotopath1(""); - }else if("1".equals(pathIndex)){ + } else if ("1".equals(pathIndex)) { appDeviceLog.setPhotopath2(""); - }else if("2".equals(pathIndex)){ + } else if ("2".equals(pathIndex)) { appDeviceLog.setPhotopath3(""); } appDeviceLogService.updateById(appDeviceLog); @@ -188,4 +198,60 @@ return ResponseData.success(); } + + /** + * pc端日志分页列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + Page page = new PageFactory().defaultPage(); + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + page = appDeviceLogService.selectPage(page, query); + List appDeviceLogList=page.getRecords(); + appDeviceLogList.forEach(appDeviceLog -> { + appDeviceLog.setWelltype(permissionService.getDictNameByCode("sluicewellType",appDeviceLog.getWelltype())); + }); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 日志列表导出 + */ + @RequestMapping(value = "/listExp") + public void reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson) throws IOException { + + List list = appDeviceLogService.reportExport(devcode, devtype, + begTime, endTime, project, installPerson); + list.forEach(AppDeviceLog -> { + AppDeviceLog.setWelltype( permissionService.getDictNameByCode("sluicewellType",AppDeviceLog.getWelltype())); + }); + + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceLogExportEnum.DeviceLog_EXPORT, res); + } + } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java new file mode 100644 index 0000000..cbfbc35 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceBaseExportEnum.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceBaseExportEnum implements ExportExcelHeaderEnum { + + DeviceBase_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井名称", "wellname")); + add(new Header("井深", "welldepth")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("区", "area")); + add(new Header("街道", "street")); + add(new Header("描述", "description")); + }}, "deviceBaseList.xlsx", "设备安装基础信息列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceBaseExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java new file mode 100644 index 0000000..2076b9f --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/enums/DeviceLogExportEnum.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.app.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceLogExportEnum implements ExportExcelHeaderEnum { + + DeviceLog_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devicetype")); + add(new Header("井编号", "wellcode")); + add(new Header("井类型", "welltype")); + add(new Header("井深", "welldepth")); + add(new Header("井名称", "wellname")); + add(new Header("安装高度", "installheigt")); + add(new Header("负责人", "installperson")); + add(new Header("记录时间", "installtime")); + add(new Header("所属项目", "project")); + add(new Header("安装位置", "position")); + add(new Header("经度(gcj02)", "longitude")); + add(new Header("纬度(gcj02)", "latitude")); + add(new Header("经度(wgs84)", "longitude84")); + add(new Header("纬度(wgs84)", "latitude84")); + add(new Header("描述", "description")); + }}, "deviceLogList.xlsx", "日志列表导出"); + + + /** + * 导出模板相对路径 + */ + private List
headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceLogExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java index 602e246..1fb2545 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceAdd.java @@ -99,6 +99,18 @@ */ private String description; /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + /** * 创建时间 */ private Date createtime; @@ -111,6 +123,14 @@ */ private String latitude; /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + /** * 设备类型 */ private String devicetype; @@ -299,6 +319,46 @@ this.photopath3 = photopath3; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -352,6 +412,11 @@ appDeviceAdd.longitude = appDeviceLog.getLongitude(); appDeviceAdd.latitude = appDeviceLog.getLatitude(); appDeviceAdd.devicetype = appDeviceLog.getDevicetype(); + appDeviceAdd.area = appDeviceLog.getArea(); + appDeviceAdd.street = appDeviceLog.getStreet(); + appDeviceAdd.wellname = appDeviceLog.getWellname(); + appDeviceAdd.latitude84 = appDeviceLog.getLatitude84(); + appDeviceAdd.longitude84 = appDeviceLog.getLongitude84(); appDeviceAdd.createtime = new Date(); return appDeviceAdd; diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java index 3feb3b3..25326e5 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/model/AppDeviceLog.java @@ -111,6 +111,28 @@ */ private String devicetype; + /** + * 区 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 井名称 + */ + private String wellname; + + /** + * 经度84 + */ + private String longitude84; + /** + * 维度84 + */ + private String latitude84; + @TableField(exist = false) private String installtimeFmt; @@ -283,6 +305,46 @@ this.installtimeFmt = installtimeFmt; } + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getWellname() { + return wellname; + } + + public void setWellname(String wellname) { + this.wellname = wellname; + } + + public String getLongitude84() { + return longitude84; + } + + public void setLongitude84(String longitude84) { + this.longitude84 = longitude84; + } + + public String getLatitude84() { + return latitude84; + } + + public void setLatitude84(String latitude84) { + this.latitude84 = latitude84; + } + @Override protected Serializable pkVal() { return this.id; @@ -336,6 +398,11 @@ this.longitude = appDeviceAdd.getLongitude(); this.latitude = appDeviceAdd.getLatitude(); this.devicetype = appDeviceAdd.getDevicetype(); + this.wellname = appDeviceAdd.getWellname(); + this.area = appDeviceAdd.getArea(); + this.street = appDeviceAdd.getStreet(); + this.latitude84 = appDeviceAdd.getLatitude84(); + this.longitude84 = appDeviceAdd.getLongitude84(); } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java index d3f2c53..7eafb27 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceAddService.java @@ -19,5 +19,9 @@ List getAppDevice(String devcode); String saveFile(MultipartFile var1) throws IOException; + String fileUploadMarker(MultipartFile var1,String text) throws IOException; String findModeCodeByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java index 083caac..50fcc63 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/IAppDeviceLogService.java @@ -16,4 +16,7 @@ public interface IAppDeviceLogService extends IService { List getListByCode(String devcode); + List reportExport(String devcode, String devtype, + String begTime, String endTime, + String project, String installPerson); } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java index fc3d0a4..701ff20 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceAddServiceImpl.java @@ -2,13 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceAddMapper; import com.casic.missiles.modular.app.model.AppDeviceAdd; import com.casic.missiles.modular.app.service.IAppDeviceAddService; +import com.casic.missiles.modular.app.util.PhotoUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.awt.*; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; @@ -58,7 +62,52 @@ } @Override + public String fileUploadMarker(MultipartFile file, String text) throws IOException { + if (!file.isEmpty()) { +// String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String uuid = text.substring(text.indexOf("编号:")+3,text.indexOf("经度:"))+"_"+System.currentTimeMillis(); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + PhotoUtils.markImageByText(text,pathName,pathName,0,new Color(0,0,255),"JPG"); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } + + @Override public String findModeCodeByCode(String devcode) { return this.baseMapper.findModeCodeByCode(devcode); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java index 22a1665..e42f082 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/service/impl/AppDeviceLogServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.app.dao.AppDeviceLogMapper; import com.casic.missiles.modular.app.model.AppDeviceLog; import com.casic.missiles.modular.app.service.IAppDeviceLogService; @@ -11,7 +13,7 @@ /** *

- * 服务实现类 + * 服务实现类 *

* * @author stylefeng123 @@ -23,7 +25,32 @@ @Override public List getListByCode(String devcode) { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("devcode",devcode); + entityWrapper.eq("devcode", devcode); return this.selectList(entityWrapper); } + + @Override + public List reportExport(String devcode, String devtype, String begTime, String endTime, String project, String installPerson) { + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(devcode)) { + query.like("devcode", devcode); + } + if (ToolUtil.isNotEmpty(begTime)) { + query.ge("installtime", DateUtil.parseTime(begTime + " 00:00:00")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime + " 23:23:59")); + } + if (ToolUtil.isNotEmpty(project)) { + query.eq("project", project); + } + if (ToolUtil.isNotEmpty(installPerson)) { + query.eq("installperson", installPerson); + } + if (ToolUtil.isNotEmpty(devtype)) { + query.eq("devicetype", devtype); + } + query.orderBy("createtime", false); + return this.selectList(query); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java new file mode 100644 index 0000000..1db9081 --- /dev/null +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/PhotoUtils.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.app.util; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; + + +/** + * Created by Administrator on 2015/2/25. + */ +public class PhotoUtils { + /** + * 给图片添加水印文字、可设置水印文字的旋转角度 + * + * @param logoText 要写入的文字 + * @param srcImgPath 源图片路径 + * @param newImagePath 新图片路径 + * @param degree 旋转角度 + * @param color 字体颜色 + * @param formaName 图片后缀 + */ + public static void markImageByText(String logoText, String srcImgPath, String newImagePath, Integer degree, Color color, String formaName) { + InputStream is = null; + OutputStream os = null; + try { + // 1、源图片 + java.awt.Image srcImg = ImageIO.read(new File(srcImgPath)); + BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB); + // 2、得到画笔对象 + Graphics2D g = buffImg.createGraphics(); + // 3、设置对线段的锯齿状边缘处理 + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), java.awt.Image.SCALE_SMOOTH), 0, 0, null); + // 4、设置水印旋转 + if (null != degree) { + g.rotate(Math.toRadians(degree), buffImg.getWidth() / 2, buffImg.getHeight() / 2); + } + // 5、设置水印文字颜色 + g.setColor(color); + // 6、设置水印文字Font + g.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, buffImg.getWidth() / 25)); + // 7、设置水印文字透明度 + g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1f)); + // 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y) + g.drawString(logoText, buffImg.getWidth() / 50, buffImg.getHeight() / 20); + // 9、释放资源 + g.dispose(); + // 10、生成图片 + os = new FileOutputStream(newImagePath); + ImageIO.write(buffImg, formaName, os); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (null != is) + is.close(); + } catch (Exception e) { + e.printStackTrace(); + } + try { + if (null != os) + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java index ff8a381..679c266 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/DeviceController.java @@ -2,7 +2,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; @@ -10,8 +10,8 @@ import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dto.DeviceDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.Device; -import com.casic.missiles.modular.system.model.Task; import org.hswebframework.expands.office.excel.ExcelIO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -22,9 +22,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -40,7 +37,7 @@ */ @Controller @RequestMapping("/device") -public class DeviceController extends BaseController { +public class DeviceController extends ExportController { @Autowired @@ -158,32 +155,50 @@ /** * 导出设备列表 */ - @RequestMapping(value = "/listExp") - public void reportExport(String projectName, - Long devTypeId, - String devcode, - String pm, - HttpServletRequest httpServletRequest, - HttpServletResponse httpServletResponse) throws IOException { +// @RequestMapping(value = "/listExp") +// public void reportExport(String projectName, Long devTypeId, +// String devcode,String pm, +// String productMode, String contractorNumber,String isSend, +// HttpServletRequest httpServletRequest, +// HttpServletResponse httpServletResponse) throws IOException { +// +// List list = deviceService.reportExport( projectName, +// devTypeId, devcode, pm, productMode, contractorNumber,isSend); +// FileInputStream fileInputStream = new FileInputStream(downloadPath + +// (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); +// try { +// httpServletResponse.setContentType("application/octet-stream"); +// httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); +// Map var = new HashMap<>(); +// var.put("list", list); +// ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); +// } catch (IOException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// httpServletResponse.getOutputStream().flush(); +// httpServletResponse.getOutputStream().close(); +// fileInputStream.close(); +// } +// } - List list = deviceService.reportExport(projectName, devTypeId, devcode, pm); - FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list != null && list.size() > 0 ? "deviceList.xlsx" : "contentNull.xlsx")); - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "deviceList.xlsx"); - Map var = new HashMap<>(); - var.put("list", list); - ExcelIO.writeTemplate(fileInputStream, httpServletResponse.getOutputStream(), var); - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - } + + + /** + * 导出设备列表(长度超范围优化) + */ + @RequestMapping(value = "/listExp") + public void reportExport(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend) throws IOException { + + List list = deviceService.reportExport( projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); + List res = new ArrayList<>(); + res.addAll(list); + //获取导出文件header + super.exportExcel(DeviceExportEnum.DEVICE_EXPORT, res); } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java index 5f92336..d718327 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IDeviceService.java @@ -37,7 +37,10 @@ List reportExport(String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); String getProjectBydevcode(String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java index 2e07102..bbf2d3d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceServiceImpl.java @@ -76,11 +76,12 @@ @Override - public List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm) { - List deviceDtoList = this.baseMapper.reportExport(projectName, devTypeId, devcode, pm); + public List reportExport( String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = this.baseMapper.reportExport(projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); for (DeviceDto deviceDto : deviceDtoList) { deviceDto.setIsSend("1".equals(deviceDto.getIsSend()) ? sendArr[1] : ("2".equals(deviceDto.getIsSend()) ? sendArr[2] : sendArr[0])); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java index 1ce57de..68c37f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/controller/ProductRepairRecordsController.java @@ -86,7 +86,7 @@ Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -99,8 +99,10 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { productRepairRecords.setDevTypeName(deviceService.getDevTypeBydevcode(productRepairRecords.getDevcode())); productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } } return new SuccessResponseData(super.packForBT(page)); } @@ -280,7 +282,10 @@ row.shutdown(); } }); - productRepairRecordsService.importContract(results); + Map resultMap = productRepairRecordsService.importContract(results); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } } } catch (Exception e) { e.printStackTrace(); @@ -291,21 +296,21 @@ @RequestMapping(value = "/getPhoto") - public void doPost(@RequestParam("id") Long id, HttpServletResponse response,String number) + public void doPost(@RequestParam("id") Long id, HttpServletResponse response, String number) throws ServletException, IOException { ProductRepairRecords repairRecords = productRepairRecordsService.selectById(id); if (ToolUtil.isNotEmpty(repairRecords.getPhotopath1())) { - FileUtil.downloadLocalFile(response,filePath+ repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath1(), repairRecords.getPhotopath1().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath2(), repairRecords.getPhotopath2().substring(8)); } if (ToolUtil.isNotEmpty(repairRecords.getPhotopath3())) { - FileUtil.downloadLocalFile(response, filePath+ repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); + FileUtil.downloadLocalFile(response, filePath + repairRecords.getPhotopath3(), repairRecords.getPhotopath3().substring(8)); } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java index b1162d7..c1f6792 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/IProductRepairRecordsService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.service.IService; import java.util.List; +import java.util.Map; /** *

@@ -15,5 +16,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); - void importContract( List productRepairRecordsList); + Map importContract(List productRepairRecordsList); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java index 4095754..add13aa 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/repairs/service/impl/ProductRepairRecordsServiceImpl.java @@ -16,9 +16,13 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.sql.Timestamp; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** *

@@ -44,7 +48,7 @@ public List reportExport(String devcode, String begTime, String endTime) { EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(devcode)) { - query.eq("devcode", devcode); + query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(begTime)) { query.ge("returntime", DateUtil.parseTime(begTime)); @@ -56,32 +60,57 @@ for (ProductRepairRecords productRepairRecords : productRepairRecordsList) { ProductDeviceType productDeviceType = productDeviceTypeService.selectById(productRepairRecords.getDevtypeId()); productRepairRecords.setDevTypeName(productDeviceType != null ? productDeviceType.getProductName() : ""); - User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); - productRepairRecords.setCheckName(null != user ? user.getName() : ""); + if (null != productRepairRecords.getRepairmenId()) { + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); + } productRepairRecords.setProjectName(deviceService.getProjectBydevcode(productRepairRecords.getDevcode())); - productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(),"yyyy-MM-dd HH:mm:ss")); + + if (ToolUtil.isNotEmpty(productRepairRecords.getReturntime())) { + productRepairRecords.setReturntimeFmt(DateUtil.format(productRepairRecords.getReturntime(), "yyyy-MM-dd HH:mm:ss")); + } } return productRepairRecordsList; } - @Override - public void importContract(List productRepairRecordsList) { + @Transactional + public Map importContract(List productRepairRecordsList) { + + Map resultMap = new HashMap<>(); + //验证设备编号是否存在 +// for (ProductRepairRecords repairRecords : productRepairRecordsList) { +// if (null == deviceService.getDeviceByCode(repairRecords.getDevcode())) { +// String msg = "编号:" + repairRecords.getDevcode() + "在系统中不存在"; +// boolean success = false; +// resultMap.put("msg", msg); +// resultMap.put("success", success); +// return resultMap; +// } +// } productRepairRecordsList.forEach(repairRecords -> { - if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + if (ToolUtil.isNotEmpty(repairRecords.getCheckName())) { Account user = accountService.findUserByName(repairRecords.getCheckName()); - repairRecords.setCheckmanId(user!=null?user.getId():null); + repairRecords.setCheckmanId(user != null ? user.getId() : null); } - if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + if (ToolUtil.isNotEmpty(repairRecords.getRepairName())) { Account user = accountService.findUserByName(repairRecords.getRepairName()); - repairRecords.setRepairmenId(user!=null?user.getId():null); + repairRecords.setRepairmenId(user != null ? user.getId() : null); } - repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? - Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); - repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? - Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + try { + repairRecords.setReturntime(ToolUtil.isNotEmpty(repairRecords.getReturntimeFmt()) ? + Timestamp.valueOf(repairRecords.getReturntimeFmt()) : null); + repairRecords.setFinishtime(ToolUtil.isNotEmpty(repairRecords.getFinishtimeFmt()) ? + Timestamp.valueOf(repairRecords.getFinishtimeFmt()) : null); + }catch (Exception e){ + System.out.println("日期格式不对编号:"+repairRecords.getDevcode()); + e.printStackTrace(); + } + }); this.insertBatch(productRepairRecordsList); + resultMap.put("success", true); + return resultMap; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java index dd04612..df91064 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/PaymentsController.java @@ -77,6 +77,7 @@ entityWrapper.eq("pro_id", payments.getProId()); entityWrapper.eq("reorder", payments.getReorder()); paymentsService.delete(entityWrapper); + payments.setPaytime(ToolUtil.isNotEmpty(paytimeFmt) ? DateUtil.parseTime(paytimeFmt) : null); paymentsService.insert(payments); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 0ca769c..6e52fd2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -29,7 +29,10 @@ List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, @Param("devcode") String devcode, - @Param("pm") String pm); + @Param("pm") String pm, + @Param("productMode") String productMode, + @Param("contractorNumber") String contractorNumber, + @Param("isSend") String isSend); String getProjectBydevcode(@Param("devcode") String devcode); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml index 7c11b75..ef58eb2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/ContractMapper.xml @@ -29,15 +29,15 @@ FROM product_contract w WHERE 1=1 - and w.contract_factory like #{keyword1} + and w.contract_factory like '%${keyword1}%' - and w.contract_number like #{keyword3} + and w.contract_number like '%${keyword3}%' - and w.principal like #{name} + and w.principal like '%${name}%' diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index 3426519..c8614cd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -84,8 +84,11 @@ pd.`iccid`, pt.`cardType`, pt.`operator`, + pdt.`product_name` AS devTypeName , + pt.`devmode_id` AS productModel, + pc.`contract_number` AS contractorNumber, pd.`is_send` AS isSend, - pd.description + pd.description as descn FROM product_device pd LEFT JOIN product_batch pb ON pd.batch_id = pb.id @@ -93,6 +96,10 @@ ON pb.task_id = pt.id LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` + LEFT JOIN product_device_type pdt + ON pd.`devtype_id`=pdt.`id` + LEFT JOIN product_contract pc + ON pc.`id`= pb.`contract_id` WHERE 1=1 @@ -104,9 +111,18 @@ and pd.`devcode` like '%${devcode}%' + + and pt.`devmode_id` = #{productMode} + + + and pc.`contract_number` like '%${contractorNumber}%' + and pp.`project_manager` = #{pm} + + and pd.`is_send` = #{isSend} + ORDER BY pd.`devcode` asc diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java new file mode 100644 index 0000000..76e859c --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/enums/DeviceExportEnum.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.system.enums; + + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public enum DeviceExportEnum implements ExportExcelHeaderEnum { + + DEVICE_EXPORT(new ArrayList() {{ + add(new Header("设备编号", "devcode")); + add(new Header("设备类型", "devTypeName")); + add(new Header("项目简称", "projectSimpleName")); + add(new Header("运营商", "operator")); + add(new Header("卡类型", "cardType")); + add(new Header("IMEI号", "imei")); + add(new Header("ICCID号", "iccid")); + add(new Header("设备状况", "isSend")); + add(new Header("备注", "descn")); + }}, "deviceList.xlsx", "设备数据导出"); + + + /** + * 导出模板相对路径 + */ + private List

headers; + /** + * 下载文件名 + */ + private String fileName; + /** + * 描述信息 + */ + private String description; + + DeviceExportEnum(List
headers, String fileName, String description) { + this.headers = headers; + this.fileName = fileName; + this.description = description; + } + + @Override + public List
getHeaders() { + return headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return null; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java index dd04da0..8b8d7d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ContractServiceImpl.java @@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.HashMap; @@ -93,7 +94,7 @@ EntityWrapper query = new EntityWrapper<>(); if (ToolUtil.isNotEmpty(keyword1)) { - query.like("contractFactory", keyword1); + query.like("contract_factory", keyword1); } if (ToolUtil.isNotEmpty(keyword3)) { query.like("contract_number", keyword3); @@ -125,14 +126,21 @@ } public String getPaymentStatus(Contract contract) { + if(ToolUtil.isEmpty(contract.getContractAmount())||"0".equals(contract.getContractAmount())){ + return "0,0%"; + } Map paraMap = new HashMap<>(); paraMap.put("pro_id", contract.getId()); List paymentsList = paymentsService.selectByMap(paraMap); - float sum = 0; +// double sum = 0; + BigDecimal sum= new BigDecimal(0); for (Payments payments : paymentsList) { - sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); + if(ToolUtil.isNotEmpty(payments.getMoney())){ + sum=sum.add(new BigDecimal(payments.getMoney())); + } +// sum = sum + (ToolUtil.isNotEmpty(payments.getMoney()) ? Float.parseFloat(payments.getMoney()) : 0); } - DecimalFormat df = new DecimalFormat("0"); - return sum + "," + df.format(100 * sum / Float.valueOf(contract.getContractAmount())) + "%"; + DecimalFormat df = new DecimalFormat("#.##%"); + return sum.doubleValue() + "," + df.format(sum.doubleValue() / Double.valueOf(contract.getContractAmount())); } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java index 0c125d8..879d923 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/PaymentsServiceImpl.java @@ -10,6 +10,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.List; /** @@ -31,17 +32,19 @@ EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("pro_id", proId); List paymentsList = this.selectList(entityWrapper); - long total = Long.valueOf(money); - long contractAmount = 0; + BigDecimal b1=new BigDecimal(money); + double contractAmount = 0; for (Payments payments : paymentsList) { if(reorder.equals(payments.getReorder())) continue; - total += ToolUtil.isNotEmpty(payments.getMoney()) ? - Long.valueOf(payments.getMoney()) : 0; + + if(ToolUtil.isNotEmpty(payments.getMoney())){ + b1=b1.add(new BigDecimal(payments.getMoney())); + } } Contract contract = contractService.selectById(proId); contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? - Long.valueOf(contract.getContractAmount()) : 0; - if (total > contractAmount) return true; + Double.valueOf(contract.getContractAmount()) : 0; + if (b1.doubleValue() > contractAmount) return true; return false; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java index 5e8b77b..d289b96 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/ReimburseServiceImpl.java @@ -11,6 +11,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.List; /** @@ -32,17 +33,18 @@ EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("pro_id", proId); List reimburseList = this.selectList(entityWrapper); - long total = Long.valueOf(money); - long contractAmount = 0; + BigDecimal b1 = new BigDecimal(money); + double contractAmount = 0; for (Reimburse reimburse : reimburseList) { if (reorder.equals(reimburse.getReorder())) continue; - total += ToolUtil.isNotEmpty(reimburse.getMoney()) ? - Long.valueOf(reimburse.getMoney()) : 0; + if (ToolUtil.isNotEmpty(reimburse.getMoney())) { + b1 = b1.add(new BigDecimal(reimburse.getMoney())); + } } Contract contract = contractService.selectById(proId); contractAmount = contract != null && ToolUtil.isNotEmpty(contract.getContractAmount()) ? - Long.valueOf(contract.getContractAmount()) : 0; - if (total > contractAmount) return true; + Double.valueOf(contract.getContractAmount()) : 0; + if (b1.doubleValue() > contractAmount) return true; return false; } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java index 5d82777..1132eaf 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/TaskController.java @@ -205,7 +205,7 @@ @ResponseBody public Object getTask() { EntityWrapper entityWrapper = new EntityWrapper<>(); - entityWrapper.eq("isstored", "1"); +// entityWrapper.eq("isstored", "1"); List taskList = taskService.selectList(entityWrapper); for (Task task : taskList) { Project project = projectService.selectById(task.getProjectId()); diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 29ac078..451de68 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -1,5 +1,6 @@ server: port: 8083 + maxPostSize: -1 maxHttpHeaderSize: 102400 ################### spring配置 ################### @@ -13,7 +14,7 @@ #flowable数据源和多数据源配置 casic: kaptcha-open: false #是否开启登录时验证码 (true/false) - nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram,/appDeviceLog/listPage,/appDeviceAdd/add,/appDeviceLog/deviceDetail,/appDeviceLog/add,/appDeviceAdd/fileUpload,/appDeviceAdd/findListByCodes,/appDeviceAdd/findModeCodeByCode,/deviceType/getUser,/project/getProject,/appDeviceLog/deletePhoto,/deviceType/deviceType,/productRepairRecords/add + nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram,/appDeviceLog/listPage,/appDeviceAdd/add,/appDeviceLog/deviceDetail,/appDeviceLog/add,/appDeviceAdd/fileUpload,/appDeviceAdd/findListByCodes,/appDeviceAdd/findModeCodeByCode,/deviceType/getUser,/project/getProject,/appDeviceLog/deletePhoto,/deviceType/deviceType,/productRepairRecords/add,/appDeviceAdd/fileUploadMarker,/appDeviceAdd/getDevTypeLength,/appDeviceAdd/delete file-upload-path: C:\casic\tmp\ file-download-path: D:\tmp\ producerName: producer diff --git a/casic-web/src/main/resources/excel/contentNull.xlsx b/casic-web/src/main/resources/excel/contentNull.xlsx new file mode 100644 index 0000000..e6823e0 --- /dev/null +++ b/casic-web/src/main/resources/excel/contentNull.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/deviceImp.xlsx b/casic-web/src/main/resources/excel/deviceImp.xlsx index 0c6f31f..3869021 100644 --- a/casic-web/src/main/resources/excel/deviceImp.xlsx +++ b/casic-web/src/main/resources/excel/deviceImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/repairsImp.xlsx b/casic-web/src/main/resources/excel/repairsImp.xlsx index 2202523..af948e2 100644 --- a/casic-web/src/main/resources/excel/repairsImp.xlsx +++ b/casic-web/src/main/resources/excel/repairsImp.xlsx Binary files differ diff --git a/casic-web/src/main/resources/excel/taskImp.xlsx b/casic-web/src/main/resources/excel/taskImp.xlsx index 6fec8e3..9950017 100644 --- a/casic-web/src/main/resources/excel/taskImp.xlsx +++ b/casic-web/src/main/resources/excel/taskImp.xlsx Binary files differ