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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 2aa214e..2e07102 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 @@ -33,8 +33,13 @@ private static String[] sendArr = {"生产中", "已发货", "待交付"}; @Override - public List selectPageList(Page page, String projectName, Long devTypeId, String devcode, String pm) { - List deviceDtoList = this.baseMapper.selectPageList(page, projectName, devTypeId, devcode, pm); + public List selectPageList(Page page, String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = + this.baseMapper.selectPageList(page, 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])); @@ -42,37 +47,34 @@ return deviceDtoList; } -// @Override -// public void importDevice(List results) { -// List deviceList = new ArrayList<>(); -// for (Device device : results) { -// EntityWrapper wrapper = new EntityWrapper<>(); -// wrapper.eq("devcode", device.getDevcode()); -// List deviceList1 = this.baseMapper.selectList(wrapper); -// for (Device device1 : deviceList1) { -// device1.setIccid(device.getIccid()); -// device1.setImei(device.getImei()); -// device1.setIsSend(device.getIsSend()); -// device1.setDescription(device.getDescription()); -// deviceList.add(device1); -// } -// } -// if (deviceList != null && deviceList.size() > 0) { -// this.insertOrUpdateBatch(deviceList); -// } -// taskService.getUpdateList(); -// } - - - - - @Override public void importDevice(List results) { - this.insertBatch(results); + List deviceList = new ArrayList<>(); + for (Device device : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("devcode", device.getDevcode()); + List deviceList1 = this.baseMapper.selectList(wrapper); + for (Device device1 : deviceList1) { + device1.setIccid(device.getIccid()); + device1.setImei(device.getImei()); + device1.setIsSend(device.getIsSend()); + device1.setDescription(device.getDescription()); + deviceList.add(device1); + } + } + if (deviceList != null && deviceList.size() > 0) { + this.insertOrUpdateBatch(deviceList); + } + taskService.getUpdateList(); } +// @Override +// public void importDevice(List results) { +// this.insertBatch(results); +// } + + @Override public List reportExport(String projectName, Long devTypeId, @@ -96,4 +98,11 @@ public String getDevTypeBydevcode(String devcode) { return this.baseMapper.getDevTypeBydevcode(devcode); } + + @Override + public Device getDeviceByCode(String devcode){ + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.eq("devcode",devcode); + return this.selectOne(deviceEntityWrapper); + } } 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 2aa214e..2e07102 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 @@ -33,8 +33,13 @@ private static String[] sendArr = {"生产中", "已发货", "待交付"}; @Override - public List selectPageList(Page page, String projectName, Long devTypeId, String devcode, String pm) { - List deviceDtoList = this.baseMapper.selectPageList(page, projectName, devTypeId, devcode, pm); + public List selectPageList(Page page, String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = + this.baseMapper.selectPageList(page, 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])); @@ -42,37 +47,34 @@ return deviceDtoList; } -// @Override -// public void importDevice(List results) { -// List deviceList = new ArrayList<>(); -// for (Device device : results) { -// EntityWrapper wrapper = new EntityWrapper<>(); -// wrapper.eq("devcode", device.getDevcode()); -// List deviceList1 = this.baseMapper.selectList(wrapper); -// for (Device device1 : deviceList1) { -// device1.setIccid(device.getIccid()); -// device1.setImei(device.getImei()); -// device1.setIsSend(device.getIsSend()); -// device1.setDescription(device.getDescription()); -// deviceList.add(device1); -// } -// } -// if (deviceList != null && deviceList.size() > 0) { -// this.insertOrUpdateBatch(deviceList); -// } -// taskService.getUpdateList(); -// } - - - - - @Override public void importDevice(List results) { - this.insertBatch(results); + List deviceList = new ArrayList<>(); + for (Device device : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("devcode", device.getDevcode()); + List deviceList1 = this.baseMapper.selectList(wrapper); + for (Device device1 : deviceList1) { + device1.setIccid(device.getIccid()); + device1.setImei(device.getImei()); + device1.setIsSend(device.getIsSend()); + device1.setDescription(device.getDescription()); + deviceList.add(device1); + } + } + if (deviceList != null && deviceList.size() > 0) { + this.insertOrUpdateBatch(deviceList); + } + taskService.getUpdateList(); } +// @Override +// public void importDevice(List results) { +// this.insertBatch(results); +// } + + @Override public List reportExport(String projectName, Long devTypeId, @@ -96,4 +98,11 @@ public String getDevTypeBydevcode(String devcode) { return this.baseMapper.getDevTypeBydevcode(devcode); } + + @Override + public Device getDeviceByCode(String devcode){ + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.eq("devcode",devcode); + return this.selectOne(deviceEntityWrapper); + } } 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 7cb1f60..1ce57de 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 @@ -3,31 +3,40 @@ 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.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; 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.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.device.service.impl.DeviceServiceImpl; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; -import com.casic.missiles.modular.system.model.*; -import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.util.FileUtil; import com.casic.missiles.modular.task.service.ITaskService; import org.hswebframework.expands.office.excel.ExcelIO; 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.PathVariable; -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.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,13 +57,17 @@ @Autowired private ITaskService taskService; @Autowired - private IProductDeviceTypeService productDeviceTypeService; - @Autowired private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Resource + private ICommonFileService commonFileService; + @Value("${casic.file-download-path}") private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; + /** * 获取设备履历列表 */ @@ -86,8 +99,8 @@ 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():""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); } return new SuccessResponseData(super.packForBT(page)); } @@ -98,11 +111,36 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { + if (null == deviceService.getDeviceByCode(productRepairRecords.getDevcode())) { + return ResponseData.error(400, "设备编号不存在"); + } productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath1())){ +// productRepairRecords.setPhotopath1(productRepairRecords.getPhotopath1()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath2())){ +// productRepairRecords.setPhotopath2(productRepairRecords.getPhotopath2()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath3())){ +// productRepairRecords.setPhotopath3(productRepairRecords.getPhotopath3()); +// } +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.insert(productRepairRecords); Task task = taskService.selectById(productRepairRecords.getTaskid()); if ("1".equals(productRepairRecords.getIschange()) && null != task && @@ -110,6 +148,7 @@ if (task.getRemaincount() < 1) return ResponseData.error("备货任务单已无设备"); task.setRemaincount(task.getRemaincount() - 1); + taskService.insertOrUpdate(task); } return ResponseData.success(); } @@ -140,16 +179,30 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.updateById(productRepairRecords); return ResponseData.success(); } + /** * 设备履历详情 */ @@ -170,7 +223,7 @@ String devcode = httpServletRequest.getParameter("devcode"); String begTime = httpServletRequest.getParameter("begTime"); String endTime = httpServletRequest.getParameter("endTime"); - List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + List list = productRepairRecordsService.reportExport(devcode, begTime, endTime); FileInputStream fileInputStream = new FileInputStream(downloadPath + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); try { @@ -189,4 +242,72 @@ fileInputStream.close(); } } + + + /** + * 批量导入履历表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入履历信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("返修时间", "returntimeFmt"); + mapper.put("故障现象", "deviceProblem"); + mapper.put("检查人员", "checkName"); + mapper.put("故障定位", "deviceProblemLocation"); + mapper.put("原因分析", "analysis"); + mapper.put("归零措施", "zeroMeasures"); + mapper.put("维修人员", "repairName"); + mapper.put("完成时间", "finishtimeFmt"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductRepairRecords.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductRepairRecords repairRecords = row.getResult(); + + if (!ToolUtil.isAllEmpty(repairRecords.getDevcode(), repairRecords.getReturntimeFmt())) { + results.add(repairRecords); + } + } + } else { + row.shutdown(); + } + }); + productRepairRecordsService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入履历信息失败"); + } + return ResponseData.success(); + } + + + @RequestMapping(value = "/getPhoto") + 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)); + } + if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { + + 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)); + } + + } + } 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 2aa214e..2e07102 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 @@ -33,8 +33,13 @@ private static String[] sendArr = {"生产中", "已发货", "待交付"}; @Override - public List selectPageList(Page page, String projectName, Long devTypeId, String devcode, String pm) { - List deviceDtoList = this.baseMapper.selectPageList(page, projectName, devTypeId, devcode, pm); + public List selectPageList(Page page, String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = + this.baseMapper.selectPageList(page, 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])); @@ -42,37 +47,34 @@ return deviceDtoList; } -// @Override -// public void importDevice(List results) { -// List deviceList = new ArrayList<>(); -// for (Device device : results) { -// EntityWrapper wrapper = new EntityWrapper<>(); -// wrapper.eq("devcode", device.getDevcode()); -// List deviceList1 = this.baseMapper.selectList(wrapper); -// for (Device device1 : deviceList1) { -// device1.setIccid(device.getIccid()); -// device1.setImei(device.getImei()); -// device1.setIsSend(device.getIsSend()); -// device1.setDescription(device.getDescription()); -// deviceList.add(device1); -// } -// } -// if (deviceList != null && deviceList.size() > 0) { -// this.insertOrUpdateBatch(deviceList); -// } -// taskService.getUpdateList(); -// } - - - - - @Override public void importDevice(List results) { - this.insertBatch(results); + List deviceList = new ArrayList<>(); + for (Device device : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("devcode", device.getDevcode()); + List deviceList1 = this.baseMapper.selectList(wrapper); + for (Device device1 : deviceList1) { + device1.setIccid(device.getIccid()); + device1.setImei(device.getImei()); + device1.setIsSend(device.getIsSend()); + device1.setDescription(device.getDescription()); + deviceList.add(device1); + } + } + if (deviceList != null && deviceList.size() > 0) { + this.insertOrUpdateBatch(deviceList); + } + taskService.getUpdateList(); } +// @Override +// public void importDevice(List results) { +// this.insertBatch(results); +// } + + @Override public List reportExport(String projectName, Long devTypeId, @@ -96,4 +98,11 @@ public String getDevTypeBydevcode(String devcode) { return this.baseMapper.getDevTypeBydevcode(devcode); } + + @Override + public Device getDeviceByCode(String devcode){ + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.eq("devcode",devcode); + return this.selectOne(deviceEntityWrapper); + } } 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 7cb1f60..1ce57de 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 @@ -3,31 +3,40 @@ 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.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; 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.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.device.service.impl.DeviceServiceImpl; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; -import com.casic.missiles.modular.system.model.*; -import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.util.FileUtil; import com.casic.missiles.modular.task.service.ITaskService; import org.hswebframework.expands.office.excel.ExcelIO; 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.PathVariable; -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.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,13 +57,17 @@ @Autowired private ITaskService taskService; @Autowired - private IProductDeviceTypeService productDeviceTypeService; - @Autowired private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Resource + private ICommonFileService commonFileService; + @Value("${casic.file-download-path}") private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; + /** * 获取设备履历列表 */ @@ -86,8 +99,8 @@ 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():""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); } return new SuccessResponseData(super.packForBT(page)); } @@ -98,11 +111,36 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { + if (null == deviceService.getDeviceByCode(productRepairRecords.getDevcode())) { + return ResponseData.error(400, "设备编号不存在"); + } productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath1())){ +// productRepairRecords.setPhotopath1(productRepairRecords.getPhotopath1()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath2())){ +// productRepairRecords.setPhotopath2(productRepairRecords.getPhotopath2()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath3())){ +// productRepairRecords.setPhotopath3(productRepairRecords.getPhotopath3()); +// } +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.insert(productRepairRecords); Task task = taskService.selectById(productRepairRecords.getTaskid()); if ("1".equals(productRepairRecords.getIschange()) && null != task && @@ -110,6 +148,7 @@ if (task.getRemaincount() < 1) return ResponseData.error("备货任务单已无设备"); task.setRemaincount(task.getRemaincount() - 1); + taskService.insertOrUpdate(task); } return ResponseData.success(); } @@ -140,16 +179,30 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.updateById(productRepairRecords); return ResponseData.success(); } + /** * 设备履历详情 */ @@ -170,7 +223,7 @@ String devcode = httpServletRequest.getParameter("devcode"); String begTime = httpServletRequest.getParameter("begTime"); String endTime = httpServletRequest.getParameter("endTime"); - List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + List list = productRepairRecordsService.reportExport(devcode, begTime, endTime); FileInputStream fileInputStream = new FileInputStream(downloadPath + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); try { @@ -189,4 +242,72 @@ fileInputStream.close(); } } + + + /** + * 批量导入履历表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入履历信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("返修时间", "returntimeFmt"); + mapper.put("故障现象", "deviceProblem"); + mapper.put("检查人员", "checkName"); + mapper.put("故障定位", "deviceProblemLocation"); + mapper.put("原因分析", "analysis"); + mapper.put("归零措施", "zeroMeasures"); + mapper.put("维修人员", "repairName"); + mapper.put("完成时间", "finishtimeFmt"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductRepairRecords.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductRepairRecords repairRecords = row.getResult(); + + if (!ToolUtil.isAllEmpty(repairRecords.getDevcode(), repairRecords.getReturntimeFmt())) { + results.add(repairRecords); + } + } + } else { + row.shutdown(); + } + }); + productRepairRecordsService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入履历信息失败"); + } + return ResponseData.success(); + } + + + @RequestMapping(value = "/getPhoto") + 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)); + } + if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { + + 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)); + } + + } + } 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 15b9eb8..b1162d7 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 @@ -15,4 +15,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); + void 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 2aa214e..2e07102 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 @@ -33,8 +33,13 @@ private static String[] sendArr = {"生产中", "已发货", "待交付"}; @Override - public List selectPageList(Page page, String projectName, Long devTypeId, String devcode, String pm) { - List deviceDtoList = this.baseMapper.selectPageList(page, projectName, devTypeId, devcode, pm); + public List selectPageList(Page page, String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = + this.baseMapper.selectPageList(page, 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])); @@ -42,37 +47,34 @@ return deviceDtoList; } -// @Override -// public void importDevice(List results) { -// List deviceList = new ArrayList<>(); -// for (Device device : results) { -// EntityWrapper wrapper = new EntityWrapper<>(); -// wrapper.eq("devcode", device.getDevcode()); -// List deviceList1 = this.baseMapper.selectList(wrapper); -// for (Device device1 : deviceList1) { -// device1.setIccid(device.getIccid()); -// device1.setImei(device.getImei()); -// device1.setIsSend(device.getIsSend()); -// device1.setDescription(device.getDescription()); -// deviceList.add(device1); -// } -// } -// if (deviceList != null && deviceList.size() > 0) { -// this.insertOrUpdateBatch(deviceList); -// } -// taskService.getUpdateList(); -// } - - - - - @Override public void importDevice(List results) { - this.insertBatch(results); + List deviceList = new ArrayList<>(); + for (Device device : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("devcode", device.getDevcode()); + List deviceList1 = this.baseMapper.selectList(wrapper); + for (Device device1 : deviceList1) { + device1.setIccid(device.getIccid()); + device1.setImei(device.getImei()); + device1.setIsSend(device.getIsSend()); + device1.setDescription(device.getDescription()); + deviceList.add(device1); + } + } + if (deviceList != null && deviceList.size() > 0) { + this.insertOrUpdateBatch(deviceList); + } + taskService.getUpdateList(); } +// @Override +// public void importDevice(List results) { +// this.insertBatch(results); +// } + + @Override public List reportExport(String projectName, Long devTypeId, @@ -96,4 +98,11 @@ public String getDevTypeBydevcode(String devcode) { return this.baseMapper.getDevTypeBydevcode(devcode); } + + @Override + public Device getDeviceByCode(String devcode){ + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.eq("devcode",devcode); + return this.selectOne(deviceEntityWrapper); + } } 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 7cb1f60..1ce57de 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 @@ -3,31 +3,40 @@ 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.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; 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.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.device.service.impl.DeviceServiceImpl; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; -import com.casic.missiles.modular.system.model.*; -import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.util.FileUtil; import com.casic.missiles.modular.task.service.ITaskService; import org.hswebframework.expands.office.excel.ExcelIO; 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.PathVariable; -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.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,13 +57,17 @@ @Autowired private ITaskService taskService; @Autowired - private IProductDeviceTypeService productDeviceTypeService; - @Autowired private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Resource + private ICommonFileService commonFileService; + @Value("${casic.file-download-path}") private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; + /** * 获取设备履历列表 */ @@ -86,8 +99,8 @@ 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():""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); } return new SuccessResponseData(super.packForBT(page)); } @@ -98,11 +111,36 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { + if (null == deviceService.getDeviceByCode(productRepairRecords.getDevcode())) { + return ResponseData.error(400, "设备编号不存在"); + } productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath1())){ +// productRepairRecords.setPhotopath1(productRepairRecords.getPhotopath1()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath2())){ +// productRepairRecords.setPhotopath2(productRepairRecords.getPhotopath2()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath3())){ +// productRepairRecords.setPhotopath3(productRepairRecords.getPhotopath3()); +// } +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.insert(productRepairRecords); Task task = taskService.selectById(productRepairRecords.getTaskid()); if ("1".equals(productRepairRecords.getIschange()) && null != task && @@ -110,6 +148,7 @@ if (task.getRemaincount() < 1) return ResponseData.error("备货任务单已无设备"); task.setRemaincount(task.getRemaincount() - 1); + taskService.insertOrUpdate(task); } return ResponseData.success(); } @@ -140,16 +179,30 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.updateById(productRepairRecords); return ResponseData.success(); } + /** * 设备履历详情 */ @@ -170,7 +223,7 @@ String devcode = httpServletRequest.getParameter("devcode"); String begTime = httpServletRequest.getParameter("begTime"); String endTime = httpServletRequest.getParameter("endTime"); - List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + List list = productRepairRecordsService.reportExport(devcode, begTime, endTime); FileInputStream fileInputStream = new FileInputStream(downloadPath + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); try { @@ -189,4 +242,72 @@ fileInputStream.close(); } } + + + /** + * 批量导入履历表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入履历信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("返修时间", "returntimeFmt"); + mapper.put("故障现象", "deviceProblem"); + mapper.put("检查人员", "checkName"); + mapper.put("故障定位", "deviceProblemLocation"); + mapper.put("原因分析", "analysis"); + mapper.put("归零措施", "zeroMeasures"); + mapper.put("维修人员", "repairName"); + mapper.put("完成时间", "finishtimeFmt"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductRepairRecords.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductRepairRecords repairRecords = row.getResult(); + + if (!ToolUtil.isAllEmpty(repairRecords.getDevcode(), repairRecords.getReturntimeFmt())) { + results.add(repairRecords); + } + } + } else { + row.shutdown(); + } + }); + productRepairRecordsService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入履历信息失败"); + } + return ResponseData.success(); + } + + + @RequestMapping(value = "/getPhoto") + 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)); + } + if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { + + 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)); + } + + } + } 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 15b9eb8..b1162d7 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 @@ -15,4 +15,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); + void 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 9c37938..4095754 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 @@ -8,13 +8,16 @@ import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductRepairRecords; import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IAccountService; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.sql.Timestamp; import java.util.List; /** @@ -34,6 +37,8 @@ private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Autowired + private IAccountService accountService; @Override public List reportExport(String devcode, String begTime, String endTime) { @@ -58,4 +63,25 @@ } return productRepairRecordsList; } + + + + @Override + public void importContract(List productRepairRecordsList) { + productRepairRecordsList.forEach(repairRecords -> { + if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + Account user = accountService.findUserByName(repairRecords.getCheckName()); + repairRecords.setCheckmanId(user!=null?user.getId():null); + } + if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + Account user = accountService.findUserByName(repairRecords.getRepairName()); + 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); + }); + this.insertBatch(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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 2aa214e..2e07102 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 @@ -33,8 +33,13 @@ private static String[] sendArr = {"生产中", "已发货", "待交付"}; @Override - public List selectPageList(Page page, String projectName, Long devTypeId, String devcode, String pm) { - List deviceDtoList = this.baseMapper.selectPageList(page, projectName, devTypeId, devcode, pm); + public List selectPageList(Page page, String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = + this.baseMapper.selectPageList(page, 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])); @@ -42,37 +47,34 @@ return deviceDtoList; } -// @Override -// public void importDevice(List results) { -// List deviceList = new ArrayList<>(); -// for (Device device : results) { -// EntityWrapper wrapper = new EntityWrapper<>(); -// wrapper.eq("devcode", device.getDevcode()); -// List deviceList1 = this.baseMapper.selectList(wrapper); -// for (Device device1 : deviceList1) { -// device1.setIccid(device.getIccid()); -// device1.setImei(device.getImei()); -// device1.setIsSend(device.getIsSend()); -// device1.setDescription(device.getDescription()); -// deviceList.add(device1); -// } -// } -// if (deviceList != null && deviceList.size() > 0) { -// this.insertOrUpdateBatch(deviceList); -// } -// taskService.getUpdateList(); -// } - - - - - @Override public void importDevice(List results) { - this.insertBatch(results); + List deviceList = new ArrayList<>(); + for (Device device : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("devcode", device.getDevcode()); + List deviceList1 = this.baseMapper.selectList(wrapper); + for (Device device1 : deviceList1) { + device1.setIccid(device.getIccid()); + device1.setImei(device.getImei()); + device1.setIsSend(device.getIsSend()); + device1.setDescription(device.getDescription()); + deviceList.add(device1); + } + } + if (deviceList != null && deviceList.size() > 0) { + this.insertOrUpdateBatch(deviceList); + } + taskService.getUpdateList(); } +// @Override +// public void importDevice(List results) { +// this.insertBatch(results); +// } + + @Override public List reportExport(String projectName, Long devTypeId, @@ -96,4 +98,11 @@ public String getDevTypeBydevcode(String devcode) { return this.baseMapper.getDevTypeBydevcode(devcode); } + + @Override + public Device getDeviceByCode(String devcode){ + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.eq("devcode",devcode); + return this.selectOne(deviceEntityWrapper); + } } 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 7cb1f60..1ce57de 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 @@ -3,31 +3,40 @@ 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.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; 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.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.device.service.impl.DeviceServiceImpl; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; -import com.casic.missiles.modular.system.model.*; -import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.util.FileUtil; import com.casic.missiles.modular.task.service.ITaskService; import org.hswebframework.expands.office.excel.ExcelIO; 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.PathVariable; -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.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,13 +57,17 @@ @Autowired private ITaskService taskService; @Autowired - private IProductDeviceTypeService productDeviceTypeService; - @Autowired private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Resource + private ICommonFileService commonFileService; + @Value("${casic.file-download-path}") private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; + /** * 获取设备履历列表 */ @@ -86,8 +99,8 @@ 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():""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); } return new SuccessResponseData(super.packForBT(page)); } @@ -98,11 +111,36 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { + if (null == deviceService.getDeviceByCode(productRepairRecords.getDevcode())) { + return ResponseData.error(400, "设备编号不存在"); + } productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath1())){ +// productRepairRecords.setPhotopath1(productRepairRecords.getPhotopath1()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath2())){ +// productRepairRecords.setPhotopath2(productRepairRecords.getPhotopath2()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath3())){ +// productRepairRecords.setPhotopath3(productRepairRecords.getPhotopath3()); +// } +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.insert(productRepairRecords); Task task = taskService.selectById(productRepairRecords.getTaskid()); if ("1".equals(productRepairRecords.getIschange()) && null != task && @@ -110,6 +148,7 @@ if (task.getRemaincount() < 1) return ResponseData.error("备货任务单已无设备"); task.setRemaincount(task.getRemaincount() - 1); + taskService.insertOrUpdate(task); } return ResponseData.success(); } @@ -140,16 +179,30 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.updateById(productRepairRecords); return ResponseData.success(); } + /** * 设备履历详情 */ @@ -170,7 +223,7 @@ String devcode = httpServletRequest.getParameter("devcode"); String begTime = httpServletRequest.getParameter("begTime"); String endTime = httpServletRequest.getParameter("endTime"); - List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + List list = productRepairRecordsService.reportExport(devcode, begTime, endTime); FileInputStream fileInputStream = new FileInputStream(downloadPath + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); try { @@ -189,4 +242,72 @@ fileInputStream.close(); } } + + + /** + * 批量导入履历表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入履历信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("返修时间", "returntimeFmt"); + mapper.put("故障现象", "deviceProblem"); + mapper.put("检查人员", "checkName"); + mapper.put("故障定位", "deviceProblemLocation"); + mapper.put("原因分析", "analysis"); + mapper.put("归零措施", "zeroMeasures"); + mapper.put("维修人员", "repairName"); + mapper.put("完成时间", "finishtimeFmt"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductRepairRecords.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductRepairRecords repairRecords = row.getResult(); + + if (!ToolUtil.isAllEmpty(repairRecords.getDevcode(), repairRecords.getReturntimeFmt())) { + results.add(repairRecords); + } + } + } else { + row.shutdown(); + } + }); + productRepairRecordsService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入履历信息失败"); + } + return ResponseData.success(); + } + + + @RequestMapping(value = "/getPhoto") + 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)); + } + if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { + + 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)); + } + + } + } 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 15b9eb8..b1162d7 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 @@ -15,4 +15,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); + void 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 9c37938..4095754 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 @@ -8,13 +8,16 @@ import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductRepairRecords; import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IAccountService; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.sql.Timestamp; import java.util.List; /** @@ -34,6 +37,8 @@ private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Autowired + private IAccountService accountService; @Override public List reportExport(String devcode, String begTime, String endTime) { @@ -58,4 +63,25 @@ } return productRepairRecordsList; } + + + + @Override + public void importContract(List productRepairRecordsList) { + productRepairRecordsList.forEach(repairRecords -> { + if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + Account user = accountService.findUserByName(repairRecords.getCheckName()); + repairRecords.setCheckmanId(user!=null?user.getId():null); + } + if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + Account user = accountService.findUserByName(repairRecords.getRepairName()); + 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); + }); + this.insertBatch(productRepairRecordsList); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java index 5ee1e20..5d75451 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -11,18 +11,15 @@ import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ContractDict; -import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.model.Account; -import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.service.IAccountService; +import com.casic.missiles.modular.system.service.IContractService; import org.hswebframework.expands.office.excel.ExcelIO; 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.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -72,12 +69,13 @@ */ @RequestMapping(value = "/pageList") @ResponseBody - public Object listPage(String keyword1,String keyword2,String keyword3) { + public Object listPage(String keyword1, String keyword2, String keyword3) { Page page = new PageFactory().defaultPage(); - List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + List contractList = contractService.selectPageList(page, keyword1, keyword2, keyword3); page.setRecords(contractList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增 */ @@ -87,10 +85,10 @@ public Object add(Contract contract) { //合同编号一样,则覆盖 EntityWrapper contractEntityWrapper = new EntityWrapper<>(); - contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractEntityWrapper.eq("contract_number", contract.getContractNumber()); contractService.delete(contractEntityWrapper); - Account user=userService.findUserByName(contract.getPrincipal()); - contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.insert(contract); return ResponseData.success(); } @@ -122,15 +120,15 @@ @ResponseBody @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) public Object baseUpdate(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setContractNumber(contract.getContractNumber()); contract1.setContractName(contract.getContractName()); contract1.setContractAmount(contract.getContractAmount()); contract1.setContractContent(contract.getContractContent()); contract1.setContractFactory(contract.getContractFactory()); contract1.setPrincipal(contract.getPrincipal()); - Account user=userService.findUserByName(contract.getPrincipal()); - contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.updateById(contract1); return ResponseData.success(); } @@ -142,13 +140,14 @@ @ResponseBody @BussinessLog(value = "修改内网流程信息") public Object update(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setExternalCheckApply(contract.getExternalCheckApply()); contract1.setExternalContractApply(contract.getExternalContractApply()); contract1.setExternalProjectApply(contract.getExternalProjectApply()); contractService.updateById(contract1); return ResponseData.success(); } + /** * 导出合同列表 */ @@ -160,7 +159,7 @@ String keyword3 = httpServletRequest.getParameter("keyword3"); List list = contractService.reportExport(keyword1, keyword2, keyword3); FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + (list != null && list.size() > 0 ? "contractList.xlsx" : "contentNull.xlsx")); try { httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); @@ -223,13 +222,14 @@ /** * 根据id查详情 + * * @param id * @return */ @RequestMapping(value = "/selectById") @ResponseBody public Object detail(Long id) { - return ResponseData.success(200, + return ResponseData.success(200, "查询详情成功", contractService.selectById(id)); } @@ -245,4 +245,5 @@ List contractList = contractService.selectList(entityWrapper); return ResponseData.success(200, "", contractList); } + } 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 2aa214e..2e07102 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 @@ -33,8 +33,13 @@ private static String[] sendArr = {"生产中", "已发货", "待交付"}; @Override - public List selectPageList(Page page, String projectName, Long devTypeId, String devcode, String pm) { - List deviceDtoList = this.baseMapper.selectPageList(page, projectName, devTypeId, devcode, pm); + public List selectPageList(Page page, String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = + this.baseMapper.selectPageList(page, 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])); @@ -42,37 +47,34 @@ return deviceDtoList; } -// @Override -// public void importDevice(List results) { -// List deviceList = new ArrayList<>(); -// for (Device device : results) { -// EntityWrapper wrapper = new EntityWrapper<>(); -// wrapper.eq("devcode", device.getDevcode()); -// List deviceList1 = this.baseMapper.selectList(wrapper); -// for (Device device1 : deviceList1) { -// device1.setIccid(device.getIccid()); -// device1.setImei(device.getImei()); -// device1.setIsSend(device.getIsSend()); -// device1.setDescription(device.getDescription()); -// deviceList.add(device1); -// } -// } -// if (deviceList != null && deviceList.size() > 0) { -// this.insertOrUpdateBatch(deviceList); -// } -// taskService.getUpdateList(); -// } - - - - - @Override public void importDevice(List results) { - this.insertBatch(results); + List deviceList = new ArrayList<>(); + for (Device device : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("devcode", device.getDevcode()); + List deviceList1 = this.baseMapper.selectList(wrapper); + for (Device device1 : deviceList1) { + device1.setIccid(device.getIccid()); + device1.setImei(device.getImei()); + device1.setIsSend(device.getIsSend()); + device1.setDescription(device.getDescription()); + deviceList.add(device1); + } + } + if (deviceList != null && deviceList.size() > 0) { + this.insertOrUpdateBatch(deviceList); + } + taskService.getUpdateList(); } +// @Override +// public void importDevice(List results) { +// this.insertBatch(results); +// } + + @Override public List reportExport(String projectName, Long devTypeId, @@ -96,4 +98,11 @@ public String getDevTypeBydevcode(String devcode) { return this.baseMapper.getDevTypeBydevcode(devcode); } + + @Override + public Device getDeviceByCode(String devcode){ + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.eq("devcode",devcode); + return this.selectOne(deviceEntityWrapper); + } } 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 7cb1f60..1ce57de 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 @@ -3,31 +3,40 @@ 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.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; 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.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.device.service.impl.DeviceServiceImpl; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; -import com.casic.missiles.modular.system.model.*; -import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.util.FileUtil; import com.casic.missiles.modular.task.service.ITaskService; import org.hswebframework.expands.office.excel.ExcelIO; 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.PathVariable; -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.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,13 +57,17 @@ @Autowired private ITaskService taskService; @Autowired - private IProductDeviceTypeService productDeviceTypeService; - @Autowired private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Resource + private ICommonFileService commonFileService; + @Value("${casic.file-download-path}") private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; + /** * 获取设备履历列表 */ @@ -86,8 +99,8 @@ 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():""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); } return new SuccessResponseData(super.packForBT(page)); } @@ -98,11 +111,36 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { + if (null == deviceService.getDeviceByCode(productRepairRecords.getDevcode())) { + return ResponseData.error(400, "设备编号不存在"); + } productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath1())){ +// productRepairRecords.setPhotopath1(productRepairRecords.getPhotopath1()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath2())){ +// productRepairRecords.setPhotopath2(productRepairRecords.getPhotopath2()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath3())){ +// productRepairRecords.setPhotopath3(productRepairRecords.getPhotopath3()); +// } +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.insert(productRepairRecords); Task task = taskService.selectById(productRepairRecords.getTaskid()); if ("1".equals(productRepairRecords.getIschange()) && null != task && @@ -110,6 +148,7 @@ if (task.getRemaincount() < 1) return ResponseData.error("备货任务单已无设备"); task.setRemaincount(task.getRemaincount() - 1); + taskService.insertOrUpdate(task); } return ResponseData.success(); } @@ -140,16 +179,30 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.updateById(productRepairRecords); return ResponseData.success(); } + /** * 设备履历详情 */ @@ -170,7 +223,7 @@ String devcode = httpServletRequest.getParameter("devcode"); String begTime = httpServletRequest.getParameter("begTime"); String endTime = httpServletRequest.getParameter("endTime"); - List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + List list = productRepairRecordsService.reportExport(devcode, begTime, endTime); FileInputStream fileInputStream = new FileInputStream(downloadPath + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); try { @@ -189,4 +242,72 @@ fileInputStream.close(); } } + + + /** + * 批量导入履历表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入履历信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("返修时间", "returntimeFmt"); + mapper.put("故障现象", "deviceProblem"); + mapper.put("检查人员", "checkName"); + mapper.put("故障定位", "deviceProblemLocation"); + mapper.put("原因分析", "analysis"); + mapper.put("归零措施", "zeroMeasures"); + mapper.put("维修人员", "repairName"); + mapper.put("完成时间", "finishtimeFmt"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductRepairRecords.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductRepairRecords repairRecords = row.getResult(); + + if (!ToolUtil.isAllEmpty(repairRecords.getDevcode(), repairRecords.getReturntimeFmt())) { + results.add(repairRecords); + } + } + } else { + row.shutdown(); + } + }); + productRepairRecordsService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入履历信息失败"); + } + return ResponseData.success(); + } + + + @RequestMapping(value = "/getPhoto") + 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)); + } + if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { + + 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)); + } + + } + } 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 15b9eb8..b1162d7 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 @@ -15,4 +15,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); + void 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 9c37938..4095754 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 @@ -8,13 +8,16 @@ import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductRepairRecords; import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IAccountService; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.sql.Timestamp; import java.util.List; /** @@ -34,6 +37,8 @@ private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Autowired + private IAccountService accountService; @Override public List reportExport(String devcode, String begTime, String endTime) { @@ -58,4 +63,25 @@ } return productRepairRecordsList; } + + + + @Override + public void importContract(List productRepairRecordsList) { + productRepairRecordsList.forEach(repairRecords -> { + if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + Account user = accountService.findUserByName(repairRecords.getCheckName()); + repairRecords.setCheckmanId(user!=null?user.getId():null); + } + if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + Account user = accountService.findUserByName(repairRecords.getRepairName()); + 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); + }); + this.insertBatch(productRepairRecordsList); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java index 5ee1e20..5d75451 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -11,18 +11,15 @@ import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ContractDict; -import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.model.Account; -import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.service.IAccountService; +import com.casic.missiles.modular.system.service.IContractService; import org.hswebframework.expands.office.excel.ExcelIO; 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.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -72,12 +69,13 @@ */ @RequestMapping(value = "/pageList") @ResponseBody - public Object listPage(String keyword1,String keyword2,String keyword3) { + public Object listPage(String keyword1, String keyword2, String keyword3) { Page page = new PageFactory().defaultPage(); - List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + List contractList = contractService.selectPageList(page, keyword1, keyword2, keyword3); page.setRecords(contractList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增 */ @@ -87,10 +85,10 @@ public Object add(Contract contract) { //合同编号一样,则覆盖 EntityWrapper contractEntityWrapper = new EntityWrapper<>(); - contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractEntityWrapper.eq("contract_number", contract.getContractNumber()); contractService.delete(contractEntityWrapper); - Account user=userService.findUserByName(contract.getPrincipal()); - contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.insert(contract); return ResponseData.success(); } @@ -122,15 +120,15 @@ @ResponseBody @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) public Object baseUpdate(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setContractNumber(contract.getContractNumber()); contract1.setContractName(contract.getContractName()); contract1.setContractAmount(contract.getContractAmount()); contract1.setContractContent(contract.getContractContent()); contract1.setContractFactory(contract.getContractFactory()); contract1.setPrincipal(contract.getPrincipal()); - Account user=userService.findUserByName(contract.getPrincipal()); - contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.updateById(contract1); return ResponseData.success(); } @@ -142,13 +140,14 @@ @ResponseBody @BussinessLog(value = "修改内网流程信息") public Object update(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setExternalCheckApply(contract.getExternalCheckApply()); contract1.setExternalContractApply(contract.getExternalContractApply()); contract1.setExternalProjectApply(contract.getExternalProjectApply()); contractService.updateById(contract1); return ResponseData.success(); } + /** * 导出合同列表 */ @@ -160,7 +159,7 @@ String keyword3 = httpServletRequest.getParameter("keyword3"); List list = contractService.reportExport(keyword1, keyword2, keyword3); FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + (list != null && list.size() > 0 ? "contractList.xlsx" : "contentNull.xlsx")); try { httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); @@ -223,13 +222,14 @@ /** * 根据id查详情 + * * @param id * @return */ @RequestMapping(value = "/selectById") @ResponseBody public Object detail(Long id) { - return ResponseData.success(200, + return ResponseData.success(200, "查询详情成功", contractService.selectById(id)); } @@ -245,4 +245,5 @@ List contractList = contractService.selectList(entityWrapper); return ResponseData.success(200, "", contractList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 509ad80..844ace2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -7,8 +7,12 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.service.IProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -16,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -33,6 +39,8 @@ @Autowired private IProjectService projectService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; /** * 获取项目管理列表 @@ -111,4 +119,25 @@ List projects = projectService.selectList(entityWrapper); return ResponseData.success(200, "", projects); } + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getDevTypes") + @ResponseBody + public Object getDevTypes(Long projectId) { + List deviceTypeDtos = new ArrayList<>(); + Project project = projectService.selectById(projectId); + if (ToolUtil.isNotEmpty(project) && ToolUtil.isNotEmpty(project.getDevTpeIds())) { + List productDeviceTypes = productDeviceTypeService. + selectBatchIds(Arrays.asList(project.getDevTpeIds().split(","))); + productDeviceTypes.forEach(productDeviceType -> { + DeviceTypeDto deviceTypeDto = new DeviceTypeDto(); + deviceTypeDto.setId(productDeviceType.getId()); + deviceTypeDto.setProductName(productDeviceType.getProductName()); + deviceTypeDtos.add(deviceTypeDto); + }); + } + return ResponseData.success(200, "", deviceTypeDtos); + } } 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 2aa214e..2e07102 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 @@ -33,8 +33,13 @@ private static String[] sendArr = {"生产中", "已发货", "待交付"}; @Override - public List selectPageList(Page page, String projectName, Long devTypeId, String devcode, String pm) { - List deviceDtoList = this.baseMapper.selectPageList(page, projectName, devTypeId, devcode, pm); + public List selectPageList(Page page, String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = + this.baseMapper.selectPageList(page, 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])); @@ -42,37 +47,34 @@ return deviceDtoList; } -// @Override -// public void importDevice(List results) { -// List deviceList = new ArrayList<>(); -// for (Device device : results) { -// EntityWrapper wrapper = new EntityWrapper<>(); -// wrapper.eq("devcode", device.getDevcode()); -// List deviceList1 = this.baseMapper.selectList(wrapper); -// for (Device device1 : deviceList1) { -// device1.setIccid(device.getIccid()); -// device1.setImei(device.getImei()); -// device1.setIsSend(device.getIsSend()); -// device1.setDescription(device.getDescription()); -// deviceList.add(device1); -// } -// } -// if (deviceList != null && deviceList.size() > 0) { -// this.insertOrUpdateBatch(deviceList); -// } -// taskService.getUpdateList(); -// } - - - - - @Override public void importDevice(List results) { - this.insertBatch(results); + List deviceList = new ArrayList<>(); + for (Device device : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("devcode", device.getDevcode()); + List deviceList1 = this.baseMapper.selectList(wrapper); + for (Device device1 : deviceList1) { + device1.setIccid(device.getIccid()); + device1.setImei(device.getImei()); + device1.setIsSend(device.getIsSend()); + device1.setDescription(device.getDescription()); + deviceList.add(device1); + } + } + if (deviceList != null && deviceList.size() > 0) { + this.insertOrUpdateBatch(deviceList); + } + taskService.getUpdateList(); } +// @Override +// public void importDevice(List results) { +// this.insertBatch(results); +// } + + @Override public List reportExport(String projectName, Long devTypeId, @@ -96,4 +98,11 @@ public String getDevTypeBydevcode(String devcode) { return this.baseMapper.getDevTypeBydevcode(devcode); } + + @Override + public Device getDeviceByCode(String devcode){ + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.eq("devcode",devcode); + return this.selectOne(deviceEntityWrapper); + } } 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 7cb1f60..1ce57de 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 @@ -3,31 +3,40 @@ 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.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; 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.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.device.service.impl.DeviceServiceImpl; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; -import com.casic.missiles.modular.system.model.*; -import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.util.FileUtil; import com.casic.missiles.modular.task.service.ITaskService; import org.hswebframework.expands.office.excel.ExcelIO; 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.PathVariable; -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.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,13 +57,17 @@ @Autowired private ITaskService taskService; @Autowired - private IProductDeviceTypeService productDeviceTypeService; - @Autowired private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Resource + private ICommonFileService commonFileService; + @Value("${casic.file-download-path}") private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; + /** * 获取设备履历列表 */ @@ -86,8 +99,8 @@ 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():""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); } return new SuccessResponseData(super.packForBT(page)); } @@ -98,11 +111,36 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { + if (null == deviceService.getDeviceByCode(productRepairRecords.getDevcode())) { + return ResponseData.error(400, "设备编号不存在"); + } productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath1())){ +// productRepairRecords.setPhotopath1(productRepairRecords.getPhotopath1()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath2())){ +// productRepairRecords.setPhotopath2(productRepairRecords.getPhotopath2()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath3())){ +// productRepairRecords.setPhotopath3(productRepairRecords.getPhotopath3()); +// } +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.insert(productRepairRecords); Task task = taskService.selectById(productRepairRecords.getTaskid()); if ("1".equals(productRepairRecords.getIschange()) && null != task && @@ -110,6 +148,7 @@ if (task.getRemaincount() < 1) return ResponseData.error("备货任务单已无设备"); task.setRemaincount(task.getRemaincount() - 1); + taskService.insertOrUpdate(task); } return ResponseData.success(); } @@ -140,16 +179,30 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.updateById(productRepairRecords); return ResponseData.success(); } + /** * 设备履历详情 */ @@ -170,7 +223,7 @@ String devcode = httpServletRequest.getParameter("devcode"); String begTime = httpServletRequest.getParameter("begTime"); String endTime = httpServletRequest.getParameter("endTime"); - List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + List list = productRepairRecordsService.reportExport(devcode, begTime, endTime); FileInputStream fileInputStream = new FileInputStream(downloadPath + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); try { @@ -189,4 +242,72 @@ fileInputStream.close(); } } + + + /** + * 批量导入履历表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入履历信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("返修时间", "returntimeFmt"); + mapper.put("故障现象", "deviceProblem"); + mapper.put("检查人员", "checkName"); + mapper.put("故障定位", "deviceProblemLocation"); + mapper.put("原因分析", "analysis"); + mapper.put("归零措施", "zeroMeasures"); + mapper.put("维修人员", "repairName"); + mapper.put("完成时间", "finishtimeFmt"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductRepairRecords.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductRepairRecords repairRecords = row.getResult(); + + if (!ToolUtil.isAllEmpty(repairRecords.getDevcode(), repairRecords.getReturntimeFmt())) { + results.add(repairRecords); + } + } + } else { + row.shutdown(); + } + }); + productRepairRecordsService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入履历信息失败"); + } + return ResponseData.success(); + } + + + @RequestMapping(value = "/getPhoto") + 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)); + } + if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { + + 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)); + } + + } + } 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 15b9eb8..b1162d7 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 @@ -15,4 +15,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); + void 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 9c37938..4095754 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 @@ -8,13 +8,16 @@ import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductRepairRecords; import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IAccountService; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.sql.Timestamp; import java.util.List; /** @@ -34,6 +37,8 @@ private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Autowired + private IAccountService accountService; @Override public List reportExport(String devcode, String begTime, String endTime) { @@ -58,4 +63,25 @@ } return productRepairRecordsList; } + + + + @Override + public void importContract(List productRepairRecordsList) { + productRepairRecordsList.forEach(repairRecords -> { + if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + Account user = accountService.findUserByName(repairRecords.getCheckName()); + repairRecords.setCheckmanId(user!=null?user.getId():null); + } + if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + Account user = accountService.findUserByName(repairRecords.getRepairName()); + 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); + }); + this.insertBatch(productRepairRecordsList); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java index 5ee1e20..5d75451 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -11,18 +11,15 @@ import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ContractDict; -import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.model.Account; -import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.service.IAccountService; +import com.casic.missiles.modular.system.service.IContractService; import org.hswebframework.expands.office.excel.ExcelIO; 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.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -72,12 +69,13 @@ */ @RequestMapping(value = "/pageList") @ResponseBody - public Object listPage(String keyword1,String keyword2,String keyword3) { + public Object listPage(String keyword1, String keyword2, String keyword3) { Page page = new PageFactory().defaultPage(); - List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + List contractList = contractService.selectPageList(page, keyword1, keyword2, keyword3); page.setRecords(contractList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增 */ @@ -87,10 +85,10 @@ public Object add(Contract contract) { //合同编号一样,则覆盖 EntityWrapper contractEntityWrapper = new EntityWrapper<>(); - contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractEntityWrapper.eq("contract_number", contract.getContractNumber()); contractService.delete(contractEntityWrapper); - Account user=userService.findUserByName(contract.getPrincipal()); - contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.insert(contract); return ResponseData.success(); } @@ -122,15 +120,15 @@ @ResponseBody @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) public Object baseUpdate(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setContractNumber(contract.getContractNumber()); contract1.setContractName(contract.getContractName()); contract1.setContractAmount(contract.getContractAmount()); contract1.setContractContent(contract.getContractContent()); contract1.setContractFactory(contract.getContractFactory()); contract1.setPrincipal(contract.getPrincipal()); - Account user=userService.findUserByName(contract.getPrincipal()); - contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.updateById(contract1); return ResponseData.success(); } @@ -142,13 +140,14 @@ @ResponseBody @BussinessLog(value = "修改内网流程信息") public Object update(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setExternalCheckApply(contract.getExternalCheckApply()); contract1.setExternalContractApply(contract.getExternalContractApply()); contract1.setExternalProjectApply(contract.getExternalProjectApply()); contractService.updateById(contract1); return ResponseData.success(); } + /** * 导出合同列表 */ @@ -160,7 +159,7 @@ String keyword3 = httpServletRequest.getParameter("keyword3"); List list = contractService.reportExport(keyword1, keyword2, keyword3); FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + (list != null && list.size() > 0 ? "contractList.xlsx" : "contentNull.xlsx")); try { httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); @@ -223,13 +222,14 @@ /** * 根据id查详情 + * * @param id * @return */ @RequestMapping(value = "/selectById") @ResponseBody public Object detail(Long id) { - return ResponseData.success(200, + return ResponseData.success(200, "查询详情成功", contractService.selectById(id)); } @@ -245,4 +245,5 @@ List contractList = contractService.selectList(entityWrapper); return ResponseData.success(200, "", contractList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 509ad80..844ace2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -7,8 +7,12 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.service.IProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -16,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -33,6 +39,8 @@ @Autowired private IProjectService projectService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; /** * 获取项目管理列表 @@ -111,4 +119,25 @@ List projects = projectService.selectList(entityWrapper); return ResponseData.success(200, "", projects); } + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getDevTypes") + @ResponseBody + public Object getDevTypes(Long projectId) { + List deviceTypeDtos = new ArrayList<>(); + Project project = projectService.selectById(projectId); + if (ToolUtil.isNotEmpty(project) && ToolUtil.isNotEmpty(project.getDevTpeIds())) { + List productDeviceTypes = productDeviceTypeService. + selectBatchIds(Arrays.asList(project.getDevTpeIds().split(","))); + productDeviceTypes.forEach(productDeviceType -> { + DeviceTypeDto deviceTypeDto = new DeviceTypeDto(); + deviceTypeDto.setId(productDeviceType.getId()); + deviceTypeDto.setProductName(productDeviceType.getProductName()); + deviceTypeDtos.add(deviceTypeDto); + }); + } + return ResponseData.success(200, "", deviceTypeDtos); + } } 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 b57ce8e..0ca769c 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 @@ -21,7 +21,10 @@ @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); List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 2aa214e..2e07102 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 @@ -33,8 +33,13 @@ private static String[] sendArr = {"生产中", "已发货", "待交付"}; @Override - public List selectPageList(Page page, String projectName, Long devTypeId, String devcode, String pm) { - List deviceDtoList = this.baseMapper.selectPageList(page, projectName, devTypeId, devcode, pm); + public List selectPageList(Page page, String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = + this.baseMapper.selectPageList(page, 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])); @@ -42,37 +47,34 @@ return deviceDtoList; } -// @Override -// public void importDevice(List results) { -// List deviceList = new ArrayList<>(); -// for (Device device : results) { -// EntityWrapper wrapper = new EntityWrapper<>(); -// wrapper.eq("devcode", device.getDevcode()); -// List deviceList1 = this.baseMapper.selectList(wrapper); -// for (Device device1 : deviceList1) { -// device1.setIccid(device.getIccid()); -// device1.setImei(device.getImei()); -// device1.setIsSend(device.getIsSend()); -// device1.setDescription(device.getDescription()); -// deviceList.add(device1); -// } -// } -// if (deviceList != null && deviceList.size() > 0) { -// this.insertOrUpdateBatch(deviceList); -// } -// taskService.getUpdateList(); -// } - - - - - @Override public void importDevice(List results) { - this.insertBatch(results); + List deviceList = new ArrayList<>(); + for (Device device : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("devcode", device.getDevcode()); + List deviceList1 = this.baseMapper.selectList(wrapper); + for (Device device1 : deviceList1) { + device1.setIccid(device.getIccid()); + device1.setImei(device.getImei()); + device1.setIsSend(device.getIsSend()); + device1.setDescription(device.getDescription()); + deviceList.add(device1); + } + } + if (deviceList != null && deviceList.size() > 0) { + this.insertOrUpdateBatch(deviceList); + } + taskService.getUpdateList(); } +// @Override +// public void importDevice(List results) { +// this.insertBatch(results); +// } + + @Override public List reportExport(String projectName, Long devTypeId, @@ -96,4 +98,11 @@ public String getDevTypeBydevcode(String devcode) { return this.baseMapper.getDevTypeBydevcode(devcode); } + + @Override + public Device getDeviceByCode(String devcode){ + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.eq("devcode",devcode); + return this.selectOne(deviceEntityWrapper); + } } 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 7cb1f60..1ce57de 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 @@ -3,31 +3,40 @@ 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.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; 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.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.device.service.impl.DeviceServiceImpl; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; -import com.casic.missiles.modular.system.model.*; -import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.util.FileUtil; import com.casic.missiles.modular.task.service.ITaskService; import org.hswebframework.expands.office.excel.ExcelIO; 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.PathVariable; -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.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,13 +57,17 @@ @Autowired private ITaskService taskService; @Autowired - private IProductDeviceTypeService productDeviceTypeService; - @Autowired private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Resource + private ICommonFileService commonFileService; + @Value("${casic.file-download-path}") private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; + /** * 获取设备履历列表 */ @@ -86,8 +99,8 @@ 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():""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); } return new SuccessResponseData(super.packForBT(page)); } @@ -98,11 +111,36 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { + if (null == deviceService.getDeviceByCode(productRepairRecords.getDevcode())) { + return ResponseData.error(400, "设备编号不存在"); + } productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath1())){ +// productRepairRecords.setPhotopath1(productRepairRecords.getPhotopath1()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath2())){ +// productRepairRecords.setPhotopath2(productRepairRecords.getPhotopath2()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath3())){ +// productRepairRecords.setPhotopath3(productRepairRecords.getPhotopath3()); +// } +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.insert(productRepairRecords); Task task = taskService.selectById(productRepairRecords.getTaskid()); if ("1".equals(productRepairRecords.getIschange()) && null != task && @@ -110,6 +148,7 @@ if (task.getRemaincount() < 1) return ResponseData.error("备货任务单已无设备"); task.setRemaincount(task.getRemaincount() - 1); + taskService.insertOrUpdate(task); } return ResponseData.success(); } @@ -140,16 +179,30 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.updateById(productRepairRecords); return ResponseData.success(); } + /** * 设备履历详情 */ @@ -170,7 +223,7 @@ String devcode = httpServletRequest.getParameter("devcode"); String begTime = httpServletRequest.getParameter("begTime"); String endTime = httpServletRequest.getParameter("endTime"); - List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + List list = productRepairRecordsService.reportExport(devcode, begTime, endTime); FileInputStream fileInputStream = new FileInputStream(downloadPath + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); try { @@ -189,4 +242,72 @@ fileInputStream.close(); } } + + + /** + * 批量导入履历表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入履历信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("返修时间", "returntimeFmt"); + mapper.put("故障现象", "deviceProblem"); + mapper.put("检查人员", "checkName"); + mapper.put("故障定位", "deviceProblemLocation"); + mapper.put("原因分析", "analysis"); + mapper.put("归零措施", "zeroMeasures"); + mapper.put("维修人员", "repairName"); + mapper.put("完成时间", "finishtimeFmt"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductRepairRecords.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductRepairRecords repairRecords = row.getResult(); + + if (!ToolUtil.isAllEmpty(repairRecords.getDevcode(), repairRecords.getReturntimeFmt())) { + results.add(repairRecords); + } + } + } else { + row.shutdown(); + } + }); + productRepairRecordsService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入履历信息失败"); + } + return ResponseData.success(); + } + + + @RequestMapping(value = "/getPhoto") + 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)); + } + if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { + + 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)); + } + + } + } 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 15b9eb8..b1162d7 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 @@ -15,4 +15,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); + void 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 9c37938..4095754 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 @@ -8,13 +8,16 @@ import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductRepairRecords; import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IAccountService; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.sql.Timestamp; import java.util.List; /** @@ -34,6 +37,8 @@ private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Autowired + private IAccountService accountService; @Override public List reportExport(String devcode, String begTime, String endTime) { @@ -58,4 +63,25 @@ } return productRepairRecordsList; } + + + + @Override + public void importContract(List productRepairRecordsList) { + productRepairRecordsList.forEach(repairRecords -> { + if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + Account user = accountService.findUserByName(repairRecords.getCheckName()); + repairRecords.setCheckmanId(user!=null?user.getId():null); + } + if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + Account user = accountService.findUserByName(repairRecords.getRepairName()); + 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); + }); + this.insertBatch(productRepairRecordsList); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java index 5ee1e20..5d75451 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -11,18 +11,15 @@ import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ContractDict; -import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.model.Account; -import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.service.IAccountService; +import com.casic.missiles.modular.system.service.IContractService; import org.hswebframework.expands.office.excel.ExcelIO; 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.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -72,12 +69,13 @@ */ @RequestMapping(value = "/pageList") @ResponseBody - public Object listPage(String keyword1,String keyword2,String keyword3) { + public Object listPage(String keyword1, String keyword2, String keyword3) { Page page = new PageFactory().defaultPage(); - List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + List contractList = contractService.selectPageList(page, keyword1, keyword2, keyword3); page.setRecords(contractList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增 */ @@ -87,10 +85,10 @@ public Object add(Contract contract) { //合同编号一样,则覆盖 EntityWrapper contractEntityWrapper = new EntityWrapper<>(); - contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractEntityWrapper.eq("contract_number", contract.getContractNumber()); contractService.delete(contractEntityWrapper); - Account user=userService.findUserByName(contract.getPrincipal()); - contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.insert(contract); return ResponseData.success(); } @@ -122,15 +120,15 @@ @ResponseBody @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) public Object baseUpdate(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setContractNumber(contract.getContractNumber()); contract1.setContractName(contract.getContractName()); contract1.setContractAmount(contract.getContractAmount()); contract1.setContractContent(contract.getContractContent()); contract1.setContractFactory(contract.getContractFactory()); contract1.setPrincipal(contract.getPrincipal()); - Account user=userService.findUserByName(contract.getPrincipal()); - contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.updateById(contract1); return ResponseData.success(); } @@ -142,13 +140,14 @@ @ResponseBody @BussinessLog(value = "修改内网流程信息") public Object update(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setExternalCheckApply(contract.getExternalCheckApply()); contract1.setExternalContractApply(contract.getExternalContractApply()); contract1.setExternalProjectApply(contract.getExternalProjectApply()); contractService.updateById(contract1); return ResponseData.success(); } + /** * 导出合同列表 */ @@ -160,7 +159,7 @@ String keyword3 = httpServletRequest.getParameter("keyword3"); List list = contractService.reportExport(keyword1, keyword2, keyword3); FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + (list != null && list.size() > 0 ? "contractList.xlsx" : "contentNull.xlsx")); try { httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); @@ -223,13 +222,14 @@ /** * 根据id查详情 + * * @param id * @return */ @RequestMapping(value = "/selectById") @ResponseBody public Object detail(Long id) { - return ResponseData.success(200, + return ResponseData.success(200, "查询详情成功", contractService.selectById(id)); } @@ -245,4 +245,5 @@ List contractList = contractService.selectList(entityWrapper); return ResponseData.success(200, "", contractList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 509ad80..844ace2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -7,8 +7,12 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.service.IProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -16,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -33,6 +39,8 @@ @Autowired private IProjectService projectService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; /** * 获取项目管理列表 @@ -111,4 +119,25 @@ List projects = projectService.selectList(entityWrapper); return ResponseData.success(200, "", projects); } + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getDevTypes") + @ResponseBody + public Object getDevTypes(Long projectId) { + List deviceTypeDtos = new ArrayList<>(); + Project project = projectService.selectById(projectId); + if (ToolUtil.isNotEmpty(project) && ToolUtil.isNotEmpty(project.getDevTpeIds())) { + List productDeviceTypes = productDeviceTypeService. + selectBatchIds(Arrays.asList(project.getDevTpeIds().split(","))); + productDeviceTypes.forEach(productDeviceType -> { + DeviceTypeDto deviceTypeDto = new DeviceTypeDto(); + deviceTypeDto.setId(productDeviceType.getId()); + deviceTypeDto.setProductName(productDeviceType.getProductName()); + deviceTypeDtos.add(deviceTypeDto); + }); + } + return ResponseData.success(200, "", deviceTypeDtos); + } } 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 b57ce8e..0ca769c 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 @@ -21,7 +21,10 @@ @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); List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, 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 4a8d514..3426519 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 @@ -34,6 +34,8 @@ 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 as descn FROM product_device pd @@ -45,6 +47,8 @@ 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 @@ -55,11 +59,19 @@ 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 @@ -105,6 +117,7 @@ LEFT JOIN product_task pt ON pt.`id`=pb.`task_id` LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 @@ -113,5 +126,6 @@ LEFT JOIN product_device_type pdt ON pd.`devtype_id`=pdt.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 2aa214e..2e07102 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 @@ -33,8 +33,13 @@ private static String[] sendArr = {"生产中", "已发货", "待交付"}; @Override - public List selectPageList(Page page, String projectName, Long devTypeId, String devcode, String pm) { - List deviceDtoList = this.baseMapper.selectPageList(page, projectName, devTypeId, devcode, pm); + public List selectPageList(Page page, String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = + this.baseMapper.selectPageList(page, 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])); @@ -42,37 +47,34 @@ return deviceDtoList; } -// @Override -// public void importDevice(List results) { -// List deviceList = new ArrayList<>(); -// for (Device device : results) { -// EntityWrapper wrapper = new EntityWrapper<>(); -// wrapper.eq("devcode", device.getDevcode()); -// List deviceList1 = this.baseMapper.selectList(wrapper); -// for (Device device1 : deviceList1) { -// device1.setIccid(device.getIccid()); -// device1.setImei(device.getImei()); -// device1.setIsSend(device.getIsSend()); -// device1.setDescription(device.getDescription()); -// deviceList.add(device1); -// } -// } -// if (deviceList != null && deviceList.size() > 0) { -// this.insertOrUpdateBatch(deviceList); -// } -// taskService.getUpdateList(); -// } - - - - - @Override public void importDevice(List results) { - this.insertBatch(results); + List deviceList = new ArrayList<>(); + for (Device device : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("devcode", device.getDevcode()); + List deviceList1 = this.baseMapper.selectList(wrapper); + for (Device device1 : deviceList1) { + device1.setIccid(device.getIccid()); + device1.setImei(device.getImei()); + device1.setIsSend(device.getIsSend()); + device1.setDescription(device.getDescription()); + deviceList.add(device1); + } + } + if (deviceList != null && deviceList.size() > 0) { + this.insertOrUpdateBatch(deviceList); + } + taskService.getUpdateList(); } +// @Override +// public void importDevice(List results) { +// this.insertBatch(results); +// } + + @Override public List reportExport(String projectName, Long devTypeId, @@ -96,4 +98,11 @@ public String getDevTypeBydevcode(String devcode) { return this.baseMapper.getDevTypeBydevcode(devcode); } + + @Override + public Device getDeviceByCode(String devcode){ + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.eq("devcode",devcode); + return this.selectOne(deviceEntityWrapper); + } } 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 7cb1f60..1ce57de 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 @@ -3,31 +3,40 @@ 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.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; 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.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.device.service.impl.DeviceServiceImpl; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; -import com.casic.missiles.modular.system.model.*; -import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.util.FileUtil; import com.casic.missiles.modular.task.service.ITaskService; import org.hswebframework.expands.office.excel.ExcelIO; 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.PathVariable; -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.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,13 +57,17 @@ @Autowired private ITaskService taskService; @Autowired - private IProductDeviceTypeService productDeviceTypeService; - @Autowired private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Resource + private ICommonFileService commonFileService; + @Value("${casic.file-download-path}") private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; + /** * 获取设备履历列表 */ @@ -86,8 +99,8 @@ 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():""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); } return new SuccessResponseData(super.packForBT(page)); } @@ -98,11 +111,36 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { + if (null == deviceService.getDeviceByCode(productRepairRecords.getDevcode())) { + return ResponseData.error(400, "设备编号不存在"); + } productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath1())){ +// productRepairRecords.setPhotopath1(productRepairRecords.getPhotopath1()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath2())){ +// productRepairRecords.setPhotopath2(productRepairRecords.getPhotopath2()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath3())){ +// productRepairRecords.setPhotopath3(productRepairRecords.getPhotopath3()); +// } +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.insert(productRepairRecords); Task task = taskService.selectById(productRepairRecords.getTaskid()); if ("1".equals(productRepairRecords.getIschange()) && null != task && @@ -110,6 +148,7 @@ if (task.getRemaincount() < 1) return ResponseData.error("备货任务单已无设备"); task.setRemaincount(task.getRemaincount() - 1); + taskService.insertOrUpdate(task); } return ResponseData.success(); } @@ -140,16 +179,30 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.updateById(productRepairRecords); return ResponseData.success(); } + /** * 设备履历详情 */ @@ -170,7 +223,7 @@ String devcode = httpServletRequest.getParameter("devcode"); String begTime = httpServletRequest.getParameter("begTime"); String endTime = httpServletRequest.getParameter("endTime"); - List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + List list = productRepairRecordsService.reportExport(devcode, begTime, endTime); FileInputStream fileInputStream = new FileInputStream(downloadPath + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); try { @@ -189,4 +242,72 @@ fileInputStream.close(); } } + + + /** + * 批量导入履历表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入履历信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("返修时间", "returntimeFmt"); + mapper.put("故障现象", "deviceProblem"); + mapper.put("检查人员", "checkName"); + mapper.put("故障定位", "deviceProblemLocation"); + mapper.put("原因分析", "analysis"); + mapper.put("归零措施", "zeroMeasures"); + mapper.put("维修人员", "repairName"); + mapper.put("完成时间", "finishtimeFmt"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductRepairRecords.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductRepairRecords repairRecords = row.getResult(); + + if (!ToolUtil.isAllEmpty(repairRecords.getDevcode(), repairRecords.getReturntimeFmt())) { + results.add(repairRecords); + } + } + } else { + row.shutdown(); + } + }); + productRepairRecordsService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入履历信息失败"); + } + return ResponseData.success(); + } + + + @RequestMapping(value = "/getPhoto") + 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)); + } + if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { + + 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)); + } + + } + } 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 15b9eb8..b1162d7 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 @@ -15,4 +15,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); + void 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 9c37938..4095754 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 @@ -8,13 +8,16 @@ import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductRepairRecords; import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IAccountService; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.sql.Timestamp; import java.util.List; /** @@ -34,6 +37,8 @@ private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Autowired + private IAccountService accountService; @Override public List reportExport(String devcode, String begTime, String endTime) { @@ -58,4 +63,25 @@ } return productRepairRecordsList; } + + + + @Override + public void importContract(List productRepairRecordsList) { + productRepairRecordsList.forEach(repairRecords -> { + if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + Account user = accountService.findUserByName(repairRecords.getCheckName()); + repairRecords.setCheckmanId(user!=null?user.getId():null); + } + if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + Account user = accountService.findUserByName(repairRecords.getRepairName()); + 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); + }); + this.insertBatch(productRepairRecordsList); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java index 5ee1e20..5d75451 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -11,18 +11,15 @@ import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ContractDict; -import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.model.Account; -import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.service.IAccountService; +import com.casic.missiles.modular.system.service.IContractService; import org.hswebframework.expands.office.excel.ExcelIO; 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.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -72,12 +69,13 @@ */ @RequestMapping(value = "/pageList") @ResponseBody - public Object listPage(String keyword1,String keyword2,String keyword3) { + public Object listPage(String keyword1, String keyword2, String keyword3) { Page page = new PageFactory().defaultPage(); - List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + List contractList = contractService.selectPageList(page, keyword1, keyword2, keyword3); page.setRecords(contractList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增 */ @@ -87,10 +85,10 @@ public Object add(Contract contract) { //合同编号一样,则覆盖 EntityWrapper contractEntityWrapper = new EntityWrapper<>(); - contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractEntityWrapper.eq("contract_number", contract.getContractNumber()); contractService.delete(contractEntityWrapper); - Account user=userService.findUserByName(contract.getPrincipal()); - contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.insert(contract); return ResponseData.success(); } @@ -122,15 +120,15 @@ @ResponseBody @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) public Object baseUpdate(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setContractNumber(contract.getContractNumber()); contract1.setContractName(contract.getContractName()); contract1.setContractAmount(contract.getContractAmount()); contract1.setContractContent(contract.getContractContent()); contract1.setContractFactory(contract.getContractFactory()); contract1.setPrincipal(contract.getPrincipal()); - Account user=userService.findUserByName(contract.getPrincipal()); - contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.updateById(contract1); return ResponseData.success(); } @@ -142,13 +140,14 @@ @ResponseBody @BussinessLog(value = "修改内网流程信息") public Object update(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setExternalCheckApply(contract.getExternalCheckApply()); contract1.setExternalContractApply(contract.getExternalContractApply()); contract1.setExternalProjectApply(contract.getExternalProjectApply()); contractService.updateById(contract1); return ResponseData.success(); } + /** * 导出合同列表 */ @@ -160,7 +159,7 @@ String keyword3 = httpServletRequest.getParameter("keyword3"); List list = contractService.reportExport(keyword1, keyword2, keyword3); FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + (list != null && list.size() > 0 ? "contractList.xlsx" : "contentNull.xlsx")); try { httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); @@ -223,13 +222,14 @@ /** * 根据id查详情 + * * @param id * @return */ @RequestMapping(value = "/selectById") @ResponseBody public Object detail(Long id) { - return ResponseData.success(200, + return ResponseData.success(200, "查询详情成功", contractService.selectById(id)); } @@ -245,4 +245,5 @@ List contractList = contractService.selectList(entityWrapper); return ResponseData.success(200, "", contractList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 509ad80..844ace2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -7,8 +7,12 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.service.IProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -16,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -33,6 +39,8 @@ @Autowired private IProjectService projectService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; /** * 获取项目管理列表 @@ -111,4 +119,25 @@ List projects = projectService.selectList(entityWrapper); return ResponseData.success(200, "", projects); } + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getDevTypes") + @ResponseBody + public Object getDevTypes(Long projectId) { + List deviceTypeDtos = new ArrayList<>(); + Project project = projectService.selectById(projectId); + if (ToolUtil.isNotEmpty(project) && ToolUtil.isNotEmpty(project.getDevTpeIds())) { + List productDeviceTypes = productDeviceTypeService. + selectBatchIds(Arrays.asList(project.getDevTpeIds().split(","))); + productDeviceTypes.forEach(productDeviceType -> { + DeviceTypeDto deviceTypeDto = new DeviceTypeDto(); + deviceTypeDto.setId(productDeviceType.getId()); + deviceTypeDto.setProductName(productDeviceType.getProductName()); + deviceTypeDtos.add(deviceTypeDto); + }); + } + return ResponseData.success(200, "", deviceTypeDtos); + } } 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 b57ce8e..0ca769c 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 @@ -21,7 +21,10 @@ @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); List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, 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 4a8d514..3426519 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 @@ -34,6 +34,8 @@ 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 as descn FROM product_device pd @@ -45,6 +47,8 @@ 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 @@ -55,11 +59,19 @@ 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 @@ -105,6 +117,7 @@ LEFT JOIN product_task pt ON pt.`id`=pb.`task_id` LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 @@ -113,5 +126,6 @@ LEFT JOIN product_device_type pdt ON pd.`devtype_id`=pdt.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml index 3efe420..537a52e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -34,6 +34,7 @@ pt.`devmode_id` AS devmodeId, pt.`devcount`, pt.`isstored`, + pt.`status`, pt.`isSend`, pc.`contract_number` AS contractNumber, pt.`devtype_id` AS devtypeId, 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 2aa214e..2e07102 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 @@ -33,8 +33,13 @@ private static String[] sendArr = {"生产中", "已发货", "待交付"}; @Override - public List selectPageList(Page page, String projectName, Long devTypeId, String devcode, String pm) { - List deviceDtoList = this.baseMapper.selectPageList(page, projectName, devTypeId, devcode, pm); + public List selectPageList(Page page, String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = + this.baseMapper.selectPageList(page, 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])); @@ -42,37 +47,34 @@ return deviceDtoList; } -// @Override -// public void importDevice(List results) { -// List deviceList = new ArrayList<>(); -// for (Device device : results) { -// EntityWrapper wrapper = new EntityWrapper<>(); -// wrapper.eq("devcode", device.getDevcode()); -// List deviceList1 = this.baseMapper.selectList(wrapper); -// for (Device device1 : deviceList1) { -// device1.setIccid(device.getIccid()); -// device1.setImei(device.getImei()); -// device1.setIsSend(device.getIsSend()); -// device1.setDescription(device.getDescription()); -// deviceList.add(device1); -// } -// } -// if (deviceList != null && deviceList.size() > 0) { -// this.insertOrUpdateBatch(deviceList); -// } -// taskService.getUpdateList(); -// } - - - - - @Override public void importDevice(List results) { - this.insertBatch(results); + List deviceList = new ArrayList<>(); + for (Device device : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("devcode", device.getDevcode()); + List deviceList1 = this.baseMapper.selectList(wrapper); + for (Device device1 : deviceList1) { + device1.setIccid(device.getIccid()); + device1.setImei(device.getImei()); + device1.setIsSend(device.getIsSend()); + device1.setDescription(device.getDescription()); + deviceList.add(device1); + } + } + if (deviceList != null && deviceList.size() > 0) { + this.insertOrUpdateBatch(deviceList); + } + taskService.getUpdateList(); } +// @Override +// public void importDevice(List results) { +// this.insertBatch(results); +// } + + @Override public List reportExport(String projectName, Long devTypeId, @@ -96,4 +98,11 @@ public String getDevTypeBydevcode(String devcode) { return this.baseMapper.getDevTypeBydevcode(devcode); } + + @Override + public Device getDeviceByCode(String devcode){ + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.eq("devcode",devcode); + return this.selectOne(deviceEntityWrapper); + } } 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 7cb1f60..1ce57de 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 @@ -3,31 +3,40 @@ 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.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; 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.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.device.service.impl.DeviceServiceImpl; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; -import com.casic.missiles.modular.system.model.*; -import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.util.FileUtil; import com.casic.missiles.modular.task.service.ITaskService; import org.hswebframework.expands.office.excel.ExcelIO; 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.PathVariable; -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.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,13 +57,17 @@ @Autowired private ITaskService taskService; @Autowired - private IProductDeviceTypeService productDeviceTypeService; - @Autowired private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Resource + private ICommonFileService commonFileService; + @Value("${casic.file-download-path}") private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; + /** * 获取设备履历列表 */ @@ -86,8 +99,8 @@ 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():""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); } return new SuccessResponseData(super.packForBT(page)); } @@ -98,11 +111,36 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { + if (null == deviceService.getDeviceByCode(productRepairRecords.getDevcode())) { + return ResponseData.error(400, "设备编号不存在"); + } productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath1())){ +// productRepairRecords.setPhotopath1(productRepairRecords.getPhotopath1()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath2())){ +// productRepairRecords.setPhotopath2(productRepairRecords.getPhotopath2()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath3())){ +// productRepairRecords.setPhotopath3(productRepairRecords.getPhotopath3()); +// } +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.insert(productRepairRecords); Task task = taskService.selectById(productRepairRecords.getTaskid()); if ("1".equals(productRepairRecords.getIschange()) && null != task && @@ -110,6 +148,7 @@ if (task.getRemaincount() < 1) return ResponseData.error("备货任务单已无设备"); task.setRemaincount(task.getRemaincount() - 1); + taskService.insertOrUpdate(task); } return ResponseData.success(); } @@ -140,16 +179,30 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.updateById(productRepairRecords); return ResponseData.success(); } + /** * 设备履历详情 */ @@ -170,7 +223,7 @@ String devcode = httpServletRequest.getParameter("devcode"); String begTime = httpServletRequest.getParameter("begTime"); String endTime = httpServletRequest.getParameter("endTime"); - List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + List list = productRepairRecordsService.reportExport(devcode, begTime, endTime); FileInputStream fileInputStream = new FileInputStream(downloadPath + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); try { @@ -189,4 +242,72 @@ fileInputStream.close(); } } + + + /** + * 批量导入履历表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入履历信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("返修时间", "returntimeFmt"); + mapper.put("故障现象", "deviceProblem"); + mapper.put("检查人员", "checkName"); + mapper.put("故障定位", "deviceProblemLocation"); + mapper.put("原因分析", "analysis"); + mapper.put("归零措施", "zeroMeasures"); + mapper.put("维修人员", "repairName"); + mapper.put("完成时间", "finishtimeFmt"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductRepairRecords.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductRepairRecords repairRecords = row.getResult(); + + if (!ToolUtil.isAllEmpty(repairRecords.getDevcode(), repairRecords.getReturntimeFmt())) { + results.add(repairRecords); + } + } + } else { + row.shutdown(); + } + }); + productRepairRecordsService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入履历信息失败"); + } + return ResponseData.success(); + } + + + @RequestMapping(value = "/getPhoto") + 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)); + } + if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { + + 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)); + } + + } + } 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 15b9eb8..b1162d7 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 @@ -15,4 +15,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); + void 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 9c37938..4095754 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 @@ -8,13 +8,16 @@ import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductRepairRecords; import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IAccountService; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.sql.Timestamp; import java.util.List; /** @@ -34,6 +37,8 @@ private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Autowired + private IAccountService accountService; @Override public List reportExport(String devcode, String begTime, String endTime) { @@ -58,4 +63,25 @@ } return productRepairRecordsList; } + + + + @Override + public void importContract(List productRepairRecordsList) { + productRepairRecordsList.forEach(repairRecords -> { + if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + Account user = accountService.findUserByName(repairRecords.getCheckName()); + repairRecords.setCheckmanId(user!=null?user.getId():null); + } + if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + Account user = accountService.findUserByName(repairRecords.getRepairName()); + 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); + }); + this.insertBatch(productRepairRecordsList); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java index 5ee1e20..5d75451 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -11,18 +11,15 @@ import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ContractDict; -import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.model.Account; -import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.service.IAccountService; +import com.casic.missiles.modular.system.service.IContractService; import org.hswebframework.expands.office.excel.ExcelIO; 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.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -72,12 +69,13 @@ */ @RequestMapping(value = "/pageList") @ResponseBody - public Object listPage(String keyword1,String keyword2,String keyword3) { + public Object listPage(String keyword1, String keyword2, String keyword3) { Page page = new PageFactory().defaultPage(); - List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + List contractList = contractService.selectPageList(page, keyword1, keyword2, keyword3); page.setRecords(contractList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增 */ @@ -87,10 +85,10 @@ public Object add(Contract contract) { //合同编号一样,则覆盖 EntityWrapper contractEntityWrapper = new EntityWrapper<>(); - contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractEntityWrapper.eq("contract_number", contract.getContractNumber()); contractService.delete(contractEntityWrapper); - Account user=userService.findUserByName(contract.getPrincipal()); - contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.insert(contract); return ResponseData.success(); } @@ -122,15 +120,15 @@ @ResponseBody @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) public Object baseUpdate(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setContractNumber(contract.getContractNumber()); contract1.setContractName(contract.getContractName()); contract1.setContractAmount(contract.getContractAmount()); contract1.setContractContent(contract.getContractContent()); contract1.setContractFactory(contract.getContractFactory()); contract1.setPrincipal(contract.getPrincipal()); - Account user=userService.findUserByName(contract.getPrincipal()); - contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.updateById(contract1); return ResponseData.success(); } @@ -142,13 +140,14 @@ @ResponseBody @BussinessLog(value = "修改内网流程信息") public Object update(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setExternalCheckApply(contract.getExternalCheckApply()); contract1.setExternalContractApply(contract.getExternalContractApply()); contract1.setExternalProjectApply(contract.getExternalProjectApply()); contractService.updateById(contract1); return ResponseData.success(); } + /** * 导出合同列表 */ @@ -160,7 +159,7 @@ String keyword3 = httpServletRequest.getParameter("keyword3"); List list = contractService.reportExport(keyword1, keyword2, keyword3); FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + (list != null && list.size() > 0 ? "contractList.xlsx" : "contentNull.xlsx")); try { httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); @@ -223,13 +222,14 @@ /** * 根据id查详情 + * * @param id * @return */ @RequestMapping(value = "/selectById") @ResponseBody public Object detail(Long id) { - return ResponseData.success(200, + return ResponseData.success(200, "查询详情成功", contractService.selectById(id)); } @@ -245,4 +245,5 @@ List contractList = contractService.selectList(entityWrapper); return ResponseData.success(200, "", contractList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 509ad80..844ace2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -7,8 +7,12 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.service.IProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -16,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -33,6 +39,8 @@ @Autowired private IProjectService projectService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; /** * 获取项目管理列表 @@ -111,4 +119,25 @@ List projects = projectService.selectList(entityWrapper); return ResponseData.success(200, "", projects); } + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getDevTypes") + @ResponseBody + public Object getDevTypes(Long projectId) { + List deviceTypeDtos = new ArrayList<>(); + Project project = projectService.selectById(projectId); + if (ToolUtil.isNotEmpty(project) && ToolUtil.isNotEmpty(project.getDevTpeIds())) { + List productDeviceTypes = productDeviceTypeService. + selectBatchIds(Arrays.asList(project.getDevTpeIds().split(","))); + productDeviceTypes.forEach(productDeviceType -> { + DeviceTypeDto deviceTypeDto = new DeviceTypeDto(); + deviceTypeDto.setId(productDeviceType.getId()); + deviceTypeDto.setProductName(productDeviceType.getProductName()); + deviceTypeDtos.add(deviceTypeDto); + }); + } + return ResponseData.success(200, "", deviceTypeDtos); + } } 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 b57ce8e..0ca769c 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 @@ -21,7 +21,10 @@ @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); List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, 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 4a8d514..3426519 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 @@ -34,6 +34,8 @@ 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 as descn FROM product_device pd @@ -45,6 +47,8 @@ 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 @@ -55,11 +59,19 @@ 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 @@ -105,6 +117,7 @@ LEFT JOIN product_task pt ON pt.`id`=pb.`task_id` LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 @@ -113,5 +126,6 @@ LEFT JOIN product_device_type pdt ON pd.`devtype_id`=pdt.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml index 3efe420..537a52e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -34,6 +34,7 @@ pt.`devmode_id` AS devmodeId, pt.`devcount`, pt.`isstored`, + pt.`status`, pt.`isSend`, pc.`contract_number` AS contractNumber, pt.`devtype_id` AS devtypeId, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java index 43328de..85b7370 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -17,6 +17,8 @@ private String cardType; private String operator; private String descn ; + private String contractorNumber ; + private String productModel; public Long getId() { return id; @@ -145,4 +147,20 @@ public void setDescn(String descn) { this.descn = descn; } + + public String getContractorNumber() { + return contractorNumber; + } + + public void setContractorNumber(String contractorNumber) { + this.contractorNumber = contractorNumber; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } } 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 2aa214e..2e07102 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 @@ -33,8 +33,13 @@ private static String[] sendArr = {"生产中", "已发货", "待交付"}; @Override - public List selectPageList(Page page, String projectName, Long devTypeId, String devcode, String pm) { - List deviceDtoList = this.baseMapper.selectPageList(page, projectName, devTypeId, devcode, pm); + public List selectPageList(Page page, String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = + this.baseMapper.selectPageList(page, 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])); @@ -42,37 +47,34 @@ return deviceDtoList; } -// @Override -// public void importDevice(List results) { -// List deviceList = new ArrayList<>(); -// for (Device device : results) { -// EntityWrapper wrapper = new EntityWrapper<>(); -// wrapper.eq("devcode", device.getDevcode()); -// List deviceList1 = this.baseMapper.selectList(wrapper); -// for (Device device1 : deviceList1) { -// device1.setIccid(device.getIccid()); -// device1.setImei(device.getImei()); -// device1.setIsSend(device.getIsSend()); -// device1.setDescription(device.getDescription()); -// deviceList.add(device1); -// } -// } -// if (deviceList != null && deviceList.size() > 0) { -// this.insertOrUpdateBatch(deviceList); -// } -// taskService.getUpdateList(); -// } - - - - - @Override public void importDevice(List results) { - this.insertBatch(results); + List deviceList = new ArrayList<>(); + for (Device device : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("devcode", device.getDevcode()); + List deviceList1 = this.baseMapper.selectList(wrapper); + for (Device device1 : deviceList1) { + device1.setIccid(device.getIccid()); + device1.setImei(device.getImei()); + device1.setIsSend(device.getIsSend()); + device1.setDescription(device.getDescription()); + deviceList.add(device1); + } + } + if (deviceList != null && deviceList.size() > 0) { + this.insertOrUpdateBatch(deviceList); + } + taskService.getUpdateList(); } +// @Override +// public void importDevice(List results) { +// this.insertBatch(results); +// } + + @Override public List reportExport(String projectName, Long devTypeId, @@ -96,4 +98,11 @@ public String getDevTypeBydevcode(String devcode) { return this.baseMapper.getDevTypeBydevcode(devcode); } + + @Override + public Device getDeviceByCode(String devcode){ + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.eq("devcode",devcode); + return this.selectOne(deviceEntityWrapper); + } } 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 7cb1f60..1ce57de 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 @@ -3,31 +3,40 @@ 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.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; 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.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.device.service.impl.DeviceServiceImpl; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; -import com.casic.missiles.modular.system.model.*; -import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.util.FileUtil; import com.casic.missiles.modular.task.service.ITaskService; import org.hswebframework.expands.office.excel.ExcelIO; 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.PathVariable; -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.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,13 +57,17 @@ @Autowired private ITaskService taskService; @Autowired - private IProductDeviceTypeService productDeviceTypeService; - @Autowired private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Resource + private ICommonFileService commonFileService; + @Value("${casic.file-download-path}") private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; + /** * 获取设备履历列表 */ @@ -86,8 +99,8 @@ 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():""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); } return new SuccessResponseData(super.packForBT(page)); } @@ -98,11 +111,36 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { + if (null == deviceService.getDeviceByCode(productRepairRecords.getDevcode())) { + return ResponseData.error(400, "设备编号不存在"); + } productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath1())){ +// productRepairRecords.setPhotopath1(productRepairRecords.getPhotopath1()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath2())){ +// productRepairRecords.setPhotopath2(productRepairRecords.getPhotopath2()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath3())){ +// productRepairRecords.setPhotopath3(productRepairRecords.getPhotopath3()); +// } +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.insert(productRepairRecords); Task task = taskService.selectById(productRepairRecords.getTaskid()); if ("1".equals(productRepairRecords.getIschange()) && null != task && @@ -110,6 +148,7 @@ if (task.getRemaincount() < 1) return ResponseData.error("备货任务单已无设备"); task.setRemaincount(task.getRemaincount() - 1); + taskService.insertOrUpdate(task); } return ResponseData.success(); } @@ -140,16 +179,30 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.updateById(productRepairRecords); return ResponseData.success(); } + /** * 设备履历详情 */ @@ -170,7 +223,7 @@ String devcode = httpServletRequest.getParameter("devcode"); String begTime = httpServletRequest.getParameter("begTime"); String endTime = httpServletRequest.getParameter("endTime"); - List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + List list = productRepairRecordsService.reportExport(devcode, begTime, endTime); FileInputStream fileInputStream = new FileInputStream(downloadPath + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); try { @@ -189,4 +242,72 @@ fileInputStream.close(); } } + + + /** + * 批量导入履历表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入履历信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("返修时间", "returntimeFmt"); + mapper.put("故障现象", "deviceProblem"); + mapper.put("检查人员", "checkName"); + mapper.put("故障定位", "deviceProblemLocation"); + mapper.put("原因分析", "analysis"); + mapper.put("归零措施", "zeroMeasures"); + mapper.put("维修人员", "repairName"); + mapper.put("完成时间", "finishtimeFmt"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductRepairRecords.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductRepairRecords repairRecords = row.getResult(); + + if (!ToolUtil.isAllEmpty(repairRecords.getDevcode(), repairRecords.getReturntimeFmt())) { + results.add(repairRecords); + } + } + } else { + row.shutdown(); + } + }); + productRepairRecordsService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入履历信息失败"); + } + return ResponseData.success(); + } + + + @RequestMapping(value = "/getPhoto") + 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)); + } + if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { + + 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)); + } + + } + } 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 15b9eb8..b1162d7 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 @@ -15,4 +15,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); + void 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 9c37938..4095754 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 @@ -8,13 +8,16 @@ import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductRepairRecords; import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IAccountService; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.sql.Timestamp; import java.util.List; /** @@ -34,6 +37,8 @@ private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Autowired + private IAccountService accountService; @Override public List reportExport(String devcode, String begTime, String endTime) { @@ -58,4 +63,25 @@ } return productRepairRecordsList; } + + + + @Override + public void importContract(List productRepairRecordsList) { + productRepairRecordsList.forEach(repairRecords -> { + if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + Account user = accountService.findUserByName(repairRecords.getCheckName()); + repairRecords.setCheckmanId(user!=null?user.getId():null); + } + if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + Account user = accountService.findUserByName(repairRecords.getRepairName()); + 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); + }); + this.insertBatch(productRepairRecordsList); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java index 5ee1e20..5d75451 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -11,18 +11,15 @@ import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ContractDict; -import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.model.Account; -import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.service.IAccountService; +import com.casic.missiles.modular.system.service.IContractService; import org.hswebframework.expands.office.excel.ExcelIO; 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.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -72,12 +69,13 @@ */ @RequestMapping(value = "/pageList") @ResponseBody - public Object listPage(String keyword1,String keyword2,String keyword3) { + public Object listPage(String keyword1, String keyword2, String keyword3) { Page page = new PageFactory().defaultPage(); - List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + List contractList = contractService.selectPageList(page, keyword1, keyword2, keyword3); page.setRecords(contractList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增 */ @@ -87,10 +85,10 @@ public Object add(Contract contract) { //合同编号一样,则覆盖 EntityWrapper contractEntityWrapper = new EntityWrapper<>(); - contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractEntityWrapper.eq("contract_number", contract.getContractNumber()); contractService.delete(contractEntityWrapper); - Account user=userService.findUserByName(contract.getPrincipal()); - contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.insert(contract); return ResponseData.success(); } @@ -122,15 +120,15 @@ @ResponseBody @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) public Object baseUpdate(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setContractNumber(contract.getContractNumber()); contract1.setContractName(contract.getContractName()); contract1.setContractAmount(contract.getContractAmount()); contract1.setContractContent(contract.getContractContent()); contract1.setContractFactory(contract.getContractFactory()); contract1.setPrincipal(contract.getPrincipal()); - Account user=userService.findUserByName(contract.getPrincipal()); - contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.updateById(contract1); return ResponseData.success(); } @@ -142,13 +140,14 @@ @ResponseBody @BussinessLog(value = "修改内网流程信息") public Object update(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setExternalCheckApply(contract.getExternalCheckApply()); contract1.setExternalContractApply(contract.getExternalContractApply()); contract1.setExternalProjectApply(contract.getExternalProjectApply()); contractService.updateById(contract1); return ResponseData.success(); } + /** * 导出合同列表 */ @@ -160,7 +159,7 @@ String keyword3 = httpServletRequest.getParameter("keyword3"); List list = contractService.reportExport(keyword1, keyword2, keyword3); FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + (list != null && list.size() > 0 ? "contractList.xlsx" : "contentNull.xlsx")); try { httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); @@ -223,13 +222,14 @@ /** * 根据id查详情 + * * @param id * @return */ @RequestMapping(value = "/selectById") @ResponseBody public Object detail(Long id) { - return ResponseData.success(200, + return ResponseData.success(200, "查询详情成功", contractService.selectById(id)); } @@ -245,4 +245,5 @@ List contractList = contractService.selectList(entityWrapper); return ResponseData.success(200, "", contractList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 509ad80..844ace2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -7,8 +7,12 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.service.IProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -16,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -33,6 +39,8 @@ @Autowired private IProjectService projectService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; /** * 获取项目管理列表 @@ -111,4 +119,25 @@ List projects = projectService.selectList(entityWrapper); return ResponseData.success(200, "", projects); } + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getDevTypes") + @ResponseBody + public Object getDevTypes(Long projectId) { + List deviceTypeDtos = new ArrayList<>(); + Project project = projectService.selectById(projectId); + if (ToolUtil.isNotEmpty(project) && ToolUtil.isNotEmpty(project.getDevTpeIds())) { + List productDeviceTypes = productDeviceTypeService. + selectBatchIds(Arrays.asList(project.getDevTpeIds().split(","))); + productDeviceTypes.forEach(productDeviceType -> { + DeviceTypeDto deviceTypeDto = new DeviceTypeDto(); + deviceTypeDto.setId(productDeviceType.getId()); + deviceTypeDto.setProductName(productDeviceType.getProductName()); + deviceTypeDtos.add(deviceTypeDto); + }); + } + return ResponseData.success(200, "", deviceTypeDtos); + } } 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 b57ce8e..0ca769c 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 @@ -21,7 +21,10 @@ @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); List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, 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 4a8d514..3426519 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 @@ -34,6 +34,8 @@ 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 as descn FROM product_device pd @@ -45,6 +47,8 @@ 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 @@ -55,11 +59,19 @@ 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 @@ -105,6 +117,7 @@ LEFT JOIN product_task pt ON pt.`id`=pb.`task_id` LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 @@ -113,5 +126,6 @@ LEFT JOIN product_device_type pdt ON pd.`devtype_id`=pdt.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml index 3efe420..537a52e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -34,6 +34,7 @@ pt.`devmode_id` AS devmodeId, pt.`devcount`, pt.`isstored`, + pt.`status`, pt.`isSend`, pc.`contract_number` AS contractNumber, pt.`devtype_id` AS devtypeId, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java index 43328de..85b7370 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -17,6 +17,8 @@ private String cardType; private String operator; private String descn ; + private String contractorNumber ; + private String productModel; public Long getId() { return id; @@ -145,4 +147,20 @@ public void setDescn(String descn) { this.descn = descn; } + + public String getContractorNumber() { + return contractorNumber; + } + + public void setContractorNumber(String contractorNumber) { + this.contractorNumber = contractorNumber; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java index 81516b7..63ba43e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -32,6 +32,7 @@ private Long devtypeId; @TableField("task_id") private Long taskId; + private Long remaincount; private Date createtime; @@ -91,6 +92,14 @@ this.devtypeId = devtypeId; } + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + @Override protected Serializable pkVal() { return this.id; 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 2aa214e..2e07102 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 @@ -33,8 +33,13 @@ private static String[] sendArr = {"生产中", "已发货", "待交付"}; @Override - public List selectPageList(Page page, String projectName, Long devTypeId, String devcode, String pm) { - List deviceDtoList = this.baseMapper.selectPageList(page, projectName, devTypeId, devcode, pm); + public List selectPageList(Page page, String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = + this.baseMapper.selectPageList(page, 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])); @@ -42,37 +47,34 @@ return deviceDtoList; } -// @Override -// public void importDevice(List results) { -// List deviceList = new ArrayList<>(); -// for (Device device : results) { -// EntityWrapper wrapper = new EntityWrapper<>(); -// wrapper.eq("devcode", device.getDevcode()); -// List deviceList1 = this.baseMapper.selectList(wrapper); -// for (Device device1 : deviceList1) { -// device1.setIccid(device.getIccid()); -// device1.setImei(device.getImei()); -// device1.setIsSend(device.getIsSend()); -// device1.setDescription(device.getDescription()); -// deviceList.add(device1); -// } -// } -// if (deviceList != null && deviceList.size() > 0) { -// this.insertOrUpdateBatch(deviceList); -// } -// taskService.getUpdateList(); -// } - - - - - @Override public void importDevice(List results) { - this.insertBatch(results); + List deviceList = new ArrayList<>(); + for (Device device : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("devcode", device.getDevcode()); + List deviceList1 = this.baseMapper.selectList(wrapper); + for (Device device1 : deviceList1) { + device1.setIccid(device.getIccid()); + device1.setImei(device.getImei()); + device1.setIsSend(device.getIsSend()); + device1.setDescription(device.getDescription()); + deviceList.add(device1); + } + } + if (deviceList != null && deviceList.size() > 0) { + this.insertOrUpdateBatch(deviceList); + } + taskService.getUpdateList(); } +// @Override +// public void importDevice(List results) { +// this.insertBatch(results); +// } + + @Override public List reportExport(String projectName, Long devTypeId, @@ -96,4 +98,11 @@ public String getDevTypeBydevcode(String devcode) { return this.baseMapper.getDevTypeBydevcode(devcode); } + + @Override + public Device getDeviceByCode(String devcode){ + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.eq("devcode",devcode); + return this.selectOne(deviceEntityWrapper); + } } 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 7cb1f60..1ce57de 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 @@ -3,31 +3,40 @@ 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.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; 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.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.device.service.impl.DeviceServiceImpl; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; -import com.casic.missiles.modular.system.model.*; -import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.util.FileUtil; import com.casic.missiles.modular.task.service.ITaskService; import org.hswebframework.expands.office.excel.ExcelIO; 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.PathVariable; -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.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,13 +57,17 @@ @Autowired private ITaskService taskService; @Autowired - private IProductDeviceTypeService productDeviceTypeService; - @Autowired private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Resource + private ICommonFileService commonFileService; + @Value("${casic.file-download-path}") private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; + /** * 获取设备履历列表 */ @@ -86,8 +99,8 @@ 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():""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); } return new SuccessResponseData(super.packForBT(page)); } @@ -98,11 +111,36 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { + if (null == deviceService.getDeviceByCode(productRepairRecords.getDevcode())) { + return ResponseData.error(400, "设备编号不存在"); + } productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath1())){ +// productRepairRecords.setPhotopath1(productRepairRecords.getPhotopath1()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath2())){ +// productRepairRecords.setPhotopath2(productRepairRecords.getPhotopath2()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath3())){ +// productRepairRecords.setPhotopath3(productRepairRecords.getPhotopath3()); +// } +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.insert(productRepairRecords); Task task = taskService.selectById(productRepairRecords.getTaskid()); if ("1".equals(productRepairRecords.getIschange()) && null != task && @@ -110,6 +148,7 @@ if (task.getRemaincount() < 1) return ResponseData.error("备货任务单已无设备"); task.setRemaincount(task.getRemaincount() - 1); + taskService.insertOrUpdate(task); } return ResponseData.success(); } @@ -140,16 +179,30 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.updateById(productRepairRecords); return ResponseData.success(); } + /** * 设备履历详情 */ @@ -170,7 +223,7 @@ String devcode = httpServletRequest.getParameter("devcode"); String begTime = httpServletRequest.getParameter("begTime"); String endTime = httpServletRequest.getParameter("endTime"); - List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + List list = productRepairRecordsService.reportExport(devcode, begTime, endTime); FileInputStream fileInputStream = new FileInputStream(downloadPath + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); try { @@ -189,4 +242,72 @@ fileInputStream.close(); } } + + + /** + * 批量导入履历表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入履历信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("返修时间", "returntimeFmt"); + mapper.put("故障现象", "deviceProblem"); + mapper.put("检查人员", "checkName"); + mapper.put("故障定位", "deviceProblemLocation"); + mapper.put("原因分析", "analysis"); + mapper.put("归零措施", "zeroMeasures"); + mapper.put("维修人员", "repairName"); + mapper.put("完成时间", "finishtimeFmt"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductRepairRecords.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductRepairRecords repairRecords = row.getResult(); + + if (!ToolUtil.isAllEmpty(repairRecords.getDevcode(), repairRecords.getReturntimeFmt())) { + results.add(repairRecords); + } + } + } else { + row.shutdown(); + } + }); + productRepairRecordsService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入履历信息失败"); + } + return ResponseData.success(); + } + + + @RequestMapping(value = "/getPhoto") + 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)); + } + if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { + + 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)); + } + + } + } 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 15b9eb8..b1162d7 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 @@ -15,4 +15,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); + void 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 9c37938..4095754 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 @@ -8,13 +8,16 @@ import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductRepairRecords; import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IAccountService; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.sql.Timestamp; import java.util.List; /** @@ -34,6 +37,8 @@ private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Autowired + private IAccountService accountService; @Override public List reportExport(String devcode, String begTime, String endTime) { @@ -58,4 +63,25 @@ } return productRepairRecordsList; } + + + + @Override + public void importContract(List productRepairRecordsList) { + productRepairRecordsList.forEach(repairRecords -> { + if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + Account user = accountService.findUserByName(repairRecords.getCheckName()); + repairRecords.setCheckmanId(user!=null?user.getId():null); + } + if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + Account user = accountService.findUserByName(repairRecords.getRepairName()); + 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); + }); + this.insertBatch(productRepairRecordsList); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java index 5ee1e20..5d75451 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -11,18 +11,15 @@ import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ContractDict; -import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.model.Account; -import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.service.IAccountService; +import com.casic.missiles.modular.system.service.IContractService; import org.hswebframework.expands.office.excel.ExcelIO; 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.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -72,12 +69,13 @@ */ @RequestMapping(value = "/pageList") @ResponseBody - public Object listPage(String keyword1,String keyword2,String keyword3) { + public Object listPage(String keyword1, String keyword2, String keyword3) { Page page = new PageFactory().defaultPage(); - List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + List contractList = contractService.selectPageList(page, keyword1, keyword2, keyword3); page.setRecords(contractList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增 */ @@ -87,10 +85,10 @@ public Object add(Contract contract) { //合同编号一样,则覆盖 EntityWrapper contractEntityWrapper = new EntityWrapper<>(); - contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractEntityWrapper.eq("contract_number", contract.getContractNumber()); contractService.delete(contractEntityWrapper); - Account user=userService.findUserByName(contract.getPrincipal()); - contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.insert(contract); return ResponseData.success(); } @@ -122,15 +120,15 @@ @ResponseBody @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) public Object baseUpdate(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setContractNumber(contract.getContractNumber()); contract1.setContractName(contract.getContractName()); contract1.setContractAmount(contract.getContractAmount()); contract1.setContractContent(contract.getContractContent()); contract1.setContractFactory(contract.getContractFactory()); contract1.setPrincipal(contract.getPrincipal()); - Account user=userService.findUserByName(contract.getPrincipal()); - contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.updateById(contract1); return ResponseData.success(); } @@ -142,13 +140,14 @@ @ResponseBody @BussinessLog(value = "修改内网流程信息") public Object update(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setExternalCheckApply(contract.getExternalCheckApply()); contract1.setExternalContractApply(contract.getExternalContractApply()); contract1.setExternalProjectApply(contract.getExternalProjectApply()); contractService.updateById(contract1); return ResponseData.success(); } + /** * 导出合同列表 */ @@ -160,7 +159,7 @@ String keyword3 = httpServletRequest.getParameter("keyword3"); List list = contractService.reportExport(keyword1, keyword2, keyword3); FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + (list != null && list.size() > 0 ? "contractList.xlsx" : "contentNull.xlsx")); try { httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); @@ -223,13 +222,14 @@ /** * 根据id查详情 + * * @param id * @return */ @RequestMapping(value = "/selectById") @ResponseBody public Object detail(Long id) { - return ResponseData.success(200, + return ResponseData.success(200, "查询详情成功", contractService.selectById(id)); } @@ -245,4 +245,5 @@ List contractList = contractService.selectList(entityWrapper); return ResponseData.success(200, "", contractList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 509ad80..844ace2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -7,8 +7,12 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.service.IProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -16,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -33,6 +39,8 @@ @Autowired private IProjectService projectService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; /** * 获取项目管理列表 @@ -111,4 +119,25 @@ List projects = projectService.selectList(entityWrapper); return ResponseData.success(200, "", projects); } + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getDevTypes") + @ResponseBody + public Object getDevTypes(Long projectId) { + List deviceTypeDtos = new ArrayList<>(); + Project project = projectService.selectById(projectId); + if (ToolUtil.isNotEmpty(project) && ToolUtil.isNotEmpty(project.getDevTpeIds())) { + List productDeviceTypes = productDeviceTypeService. + selectBatchIds(Arrays.asList(project.getDevTpeIds().split(","))); + productDeviceTypes.forEach(productDeviceType -> { + DeviceTypeDto deviceTypeDto = new DeviceTypeDto(); + deviceTypeDto.setId(productDeviceType.getId()); + deviceTypeDto.setProductName(productDeviceType.getProductName()); + deviceTypeDtos.add(deviceTypeDto); + }); + } + return ResponseData.success(200, "", deviceTypeDtos); + } } 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 b57ce8e..0ca769c 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 @@ -21,7 +21,10 @@ @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); List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, 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 4a8d514..3426519 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 @@ -34,6 +34,8 @@ 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 as descn FROM product_device pd @@ -45,6 +47,8 @@ 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 @@ -55,11 +59,19 @@ 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 @@ -105,6 +117,7 @@ LEFT JOIN product_task pt ON pt.`id`=pb.`task_id` LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 @@ -113,5 +126,6 @@ LEFT JOIN product_device_type pdt ON pd.`devtype_id`=pdt.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml index 3efe420..537a52e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -34,6 +34,7 @@ pt.`devmode_id` AS devmodeId, pt.`devcount`, pt.`isstored`, + pt.`status`, pt.`isSend`, pc.`contract_number` AS contractNumber, pt.`devtype_id` AS devtypeId, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java index 43328de..85b7370 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -17,6 +17,8 @@ private String cardType; private String operator; private String descn ; + private String contractorNumber ; + private String productModel; public Long getId() { return id; @@ -145,4 +147,20 @@ public void setDescn(String descn) { this.descn = descn; } + + public String getContractorNumber() { + return contractorNumber; + } + + public void setContractorNumber(String contractorNumber) { + this.contractorNumber = contractorNumber; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java index 81516b7..63ba43e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -32,6 +32,7 @@ private Long devtypeId; @TableField("task_id") private Long taskId; + private Long remaincount; private Date createtime; @@ -91,6 +92,14 @@ this.devtypeId = devtypeId; } + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java index 893a1ed..8663e63 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -52,6 +52,7 @@ private String netFlow; @TableField("deptid") private String deptid; + private String isstored; public String getContractNumber() { return contractNumber; @@ -165,6 +166,14 @@ this.deptid = deptid; } + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + @Override protected Serializable pkVal() { return this.id; 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 2aa214e..2e07102 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 @@ -33,8 +33,13 @@ private static String[] sendArr = {"生产中", "已发货", "待交付"}; @Override - public List selectPageList(Page page, String projectName, Long devTypeId, String devcode, String pm) { - List deviceDtoList = this.baseMapper.selectPageList(page, projectName, devTypeId, devcode, pm); + public List selectPageList(Page page, String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = + this.baseMapper.selectPageList(page, 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])); @@ -42,37 +47,34 @@ return deviceDtoList; } -// @Override -// public void importDevice(List results) { -// List deviceList = new ArrayList<>(); -// for (Device device : results) { -// EntityWrapper wrapper = new EntityWrapper<>(); -// wrapper.eq("devcode", device.getDevcode()); -// List deviceList1 = this.baseMapper.selectList(wrapper); -// for (Device device1 : deviceList1) { -// device1.setIccid(device.getIccid()); -// device1.setImei(device.getImei()); -// device1.setIsSend(device.getIsSend()); -// device1.setDescription(device.getDescription()); -// deviceList.add(device1); -// } -// } -// if (deviceList != null && deviceList.size() > 0) { -// this.insertOrUpdateBatch(deviceList); -// } -// taskService.getUpdateList(); -// } - - - - - @Override public void importDevice(List results) { - this.insertBatch(results); + List deviceList = new ArrayList<>(); + for (Device device : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("devcode", device.getDevcode()); + List deviceList1 = this.baseMapper.selectList(wrapper); + for (Device device1 : deviceList1) { + device1.setIccid(device.getIccid()); + device1.setImei(device.getImei()); + device1.setIsSend(device.getIsSend()); + device1.setDescription(device.getDescription()); + deviceList.add(device1); + } + } + if (deviceList != null && deviceList.size() > 0) { + this.insertOrUpdateBatch(deviceList); + } + taskService.getUpdateList(); } +// @Override +// public void importDevice(List results) { +// this.insertBatch(results); +// } + + @Override public List reportExport(String projectName, Long devTypeId, @@ -96,4 +98,11 @@ public String getDevTypeBydevcode(String devcode) { return this.baseMapper.getDevTypeBydevcode(devcode); } + + @Override + public Device getDeviceByCode(String devcode){ + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.eq("devcode",devcode); + return this.selectOne(deviceEntityWrapper); + } } 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 7cb1f60..1ce57de 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 @@ -3,31 +3,40 @@ 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.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; 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.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.device.service.impl.DeviceServiceImpl; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; -import com.casic.missiles.modular.system.model.*; -import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.util.FileUtil; import com.casic.missiles.modular.task.service.ITaskService; import org.hswebframework.expands.office.excel.ExcelIO; 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.PathVariable; -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.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,13 +57,17 @@ @Autowired private ITaskService taskService; @Autowired - private IProductDeviceTypeService productDeviceTypeService; - @Autowired private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Resource + private ICommonFileService commonFileService; + @Value("${casic.file-download-path}") private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; + /** * 获取设备履历列表 */ @@ -86,8 +99,8 @@ 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():""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); } return new SuccessResponseData(super.packForBT(page)); } @@ -98,11 +111,36 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { + if (null == deviceService.getDeviceByCode(productRepairRecords.getDevcode())) { + return ResponseData.error(400, "设备编号不存在"); + } productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath1())){ +// productRepairRecords.setPhotopath1(productRepairRecords.getPhotopath1()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath2())){ +// productRepairRecords.setPhotopath2(productRepairRecords.getPhotopath2()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath3())){ +// productRepairRecords.setPhotopath3(productRepairRecords.getPhotopath3()); +// } +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.insert(productRepairRecords); Task task = taskService.selectById(productRepairRecords.getTaskid()); if ("1".equals(productRepairRecords.getIschange()) && null != task && @@ -110,6 +148,7 @@ if (task.getRemaincount() < 1) return ResponseData.error("备货任务单已无设备"); task.setRemaincount(task.getRemaincount() - 1); + taskService.insertOrUpdate(task); } return ResponseData.success(); } @@ -140,16 +179,30 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.updateById(productRepairRecords); return ResponseData.success(); } + /** * 设备履历详情 */ @@ -170,7 +223,7 @@ String devcode = httpServletRequest.getParameter("devcode"); String begTime = httpServletRequest.getParameter("begTime"); String endTime = httpServletRequest.getParameter("endTime"); - List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + List list = productRepairRecordsService.reportExport(devcode, begTime, endTime); FileInputStream fileInputStream = new FileInputStream(downloadPath + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); try { @@ -189,4 +242,72 @@ fileInputStream.close(); } } + + + /** + * 批量导入履历表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入履历信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("返修时间", "returntimeFmt"); + mapper.put("故障现象", "deviceProblem"); + mapper.put("检查人员", "checkName"); + mapper.put("故障定位", "deviceProblemLocation"); + mapper.put("原因分析", "analysis"); + mapper.put("归零措施", "zeroMeasures"); + mapper.put("维修人员", "repairName"); + mapper.put("完成时间", "finishtimeFmt"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductRepairRecords.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductRepairRecords repairRecords = row.getResult(); + + if (!ToolUtil.isAllEmpty(repairRecords.getDevcode(), repairRecords.getReturntimeFmt())) { + results.add(repairRecords); + } + } + } else { + row.shutdown(); + } + }); + productRepairRecordsService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入履历信息失败"); + } + return ResponseData.success(); + } + + + @RequestMapping(value = "/getPhoto") + 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)); + } + if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { + + 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)); + } + + } + } 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 15b9eb8..b1162d7 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 @@ -15,4 +15,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); + void 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 9c37938..4095754 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 @@ -8,13 +8,16 @@ import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductRepairRecords; import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IAccountService; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.sql.Timestamp; import java.util.List; /** @@ -34,6 +37,8 @@ private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Autowired + private IAccountService accountService; @Override public List reportExport(String devcode, String begTime, String endTime) { @@ -58,4 +63,25 @@ } return productRepairRecordsList; } + + + + @Override + public void importContract(List productRepairRecordsList) { + productRepairRecordsList.forEach(repairRecords -> { + if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + Account user = accountService.findUserByName(repairRecords.getCheckName()); + repairRecords.setCheckmanId(user!=null?user.getId():null); + } + if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + Account user = accountService.findUserByName(repairRecords.getRepairName()); + 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); + }); + this.insertBatch(productRepairRecordsList); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java index 5ee1e20..5d75451 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -11,18 +11,15 @@ import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ContractDict; -import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.model.Account; -import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.service.IAccountService; +import com.casic.missiles.modular.system.service.IContractService; import org.hswebframework.expands.office.excel.ExcelIO; 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.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -72,12 +69,13 @@ */ @RequestMapping(value = "/pageList") @ResponseBody - public Object listPage(String keyword1,String keyword2,String keyword3) { + public Object listPage(String keyword1, String keyword2, String keyword3) { Page page = new PageFactory().defaultPage(); - List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + List contractList = contractService.selectPageList(page, keyword1, keyword2, keyword3); page.setRecords(contractList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增 */ @@ -87,10 +85,10 @@ public Object add(Contract contract) { //合同编号一样,则覆盖 EntityWrapper contractEntityWrapper = new EntityWrapper<>(); - contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractEntityWrapper.eq("contract_number", contract.getContractNumber()); contractService.delete(contractEntityWrapper); - Account user=userService.findUserByName(contract.getPrincipal()); - contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.insert(contract); return ResponseData.success(); } @@ -122,15 +120,15 @@ @ResponseBody @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) public Object baseUpdate(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setContractNumber(contract.getContractNumber()); contract1.setContractName(contract.getContractName()); contract1.setContractAmount(contract.getContractAmount()); contract1.setContractContent(contract.getContractContent()); contract1.setContractFactory(contract.getContractFactory()); contract1.setPrincipal(contract.getPrincipal()); - Account user=userService.findUserByName(contract.getPrincipal()); - contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.updateById(contract1); return ResponseData.success(); } @@ -142,13 +140,14 @@ @ResponseBody @BussinessLog(value = "修改内网流程信息") public Object update(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setExternalCheckApply(contract.getExternalCheckApply()); contract1.setExternalContractApply(contract.getExternalContractApply()); contract1.setExternalProjectApply(contract.getExternalProjectApply()); contractService.updateById(contract1); return ResponseData.success(); } + /** * 导出合同列表 */ @@ -160,7 +159,7 @@ String keyword3 = httpServletRequest.getParameter("keyword3"); List list = contractService.reportExport(keyword1, keyword2, keyword3); FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + (list != null && list.size() > 0 ? "contractList.xlsx" : "contentNull.xlsx")); try { httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); @@ -223,13 +222,14 @@ /** * 根据id查详情 + * * @param id * @return */ @RequestMapping(value = "/selectById") @ResponseBody public Object detail(Long id) { - return ResponseData.success(200, + return ResponseData.success(200, "查询详情成功", contractService.selectById(id)); } @@ -245,4 +245,5 @@ List contractList = contractService.selectList(entityWrapper); return ResponseData.success(200, "", contractList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 509ad80..844ace2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -7,8 +7,12 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.service.IProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -16,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -33,6 +39,8 @@ @Autowired private IProjectService projectService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; /** * 获取项目管理列表 @@ -111,4 +119,25 @@ List projects = projectService.selectList(entityWrapper); return ResponseData.success(200, "", projects); } + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getDevTypes") + @ResponseBody + public Object getDevTypes(Long projectId) { + List deviceTypeDtos = new ArrayList<>(); + Project project = projectService.selectById(projectId); + if (ToolUtil.isNotEmpty(project) && ToolUtil.isNotEmpty(project.getDevTpeIds())) { + List productDeviceTypes = productDeviceTypeService. + selectBatchIds(Arrays.asList(project.getDevTpeIds().split(","))); + productDeviceTypes.forEach(productDeviceType -> { + DeviceTypeDto deviceTypeDto = new DeviceTypeDto(); + deviceTypeDto.setId(productDeviceType.getId()); + deviceTypeDto.setProductName(productDeviceType.getProductName()); + deviceTypeDtos.add(deviceTypeDto); + }); + } + return ResponseData.success(200, "", deviceTypeDtos); + } } 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 b57ce8e..0ca769c 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 @@ -21,7 +21,10 @@ @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); List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, 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 4a8d514..3426519 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 @@ -34,6 +34,8 @@ 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 as descn FROM product_device pd @@ -45,6 +47,8 @@ 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 @@ -55,11 +59,19 @@ 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 @@ -105,6 +117,7 @@ LEFT JOIN product_task pt ON pt.`id`=pb.`task_id` LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 @@ -113,5 +126,6 @@ LEFT JOIN product_device_type pdt ON pd.`devtype_id`=pdt.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml index 3efe420..537a52e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -34,6 +34,7 @@ pt.`devmode_id` AS devmodeId, pt.`devcount`, pt.`isstored`, + pt.`status`, pt.`isSend`, pc.`contract_number` AS contractNumber, pt.`devtype_id` AS devtypeId, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java index 43328de..85b7370 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -17,6 +17,8 @@ private String cardType; private String operator; private String descn ; + private String contractorNumber ; + private String productModel; public Long getId() { return id; @@ -145,4 +147,20 @@ public void setDescn(String descn) { this.descn = descn; } + + public String getContractorNumber() { + return contractorNumber; + } + + public void setContractorNumber(String contractorNumber) { + this.contractorNumber = contractorNumber; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java index 81516b7..63ba43e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -32,6 +32,7 @@ private Long devtypeId; @TableField("task_id") private Long taskId; + private Long remaincount; private Date createtime; @@ -91,6 +92,14 @@ this.devtypeId = devtypeId; } + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java index 893a1ed..8663e63 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -52,6 +52,7 @@ private String netFlow; @TableField("deptid") private String deptid; + private String isstored; public String getContractNumber() { return contractNumber; @@ -165,6 +166,14 @@ this.deptid = deptid; } + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java index eb0f678..c7ba0b6 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -91,6 +91,12 @@ private Long taskid; + private String photopath1; + + private String photopath2; + + private String photopath3; + @TableField(exist = false) private String returntimeFmt; @@ -105,6 +111,8 @@ @TableField(exist = false) private String checkName; + @TableField(exist = false) + private String repairName; public Long getId() { return id; @@ -250,7 +258,6 @@ this.zeroMeasures = zeroMeasures; } - public String getReturntimeFmt() { return returntimeFmt; } @@ -267,6 +274,38 @@ this.finishtimeFmt = finishtimeFmt; } + public String getPhotopath1() { + return photopath1; + } + + public void setPhotopath1(String photopath1) { + this.photopath1 = photopath1; + } + + public String getPhotopath2() { + return photopath2; + } + + public void setPhotopath2(String photopath2) { + this.photopath2 = photopath2; + } + + public String getPhotopath3() { + return photopath3; + } + + public void setPhotopath3(String photopath3) { + this.photopath3 = photopath3; + } + + public String getRepairName() { + return repairName; + } + + public void setRepairName(String repairName) { + this.repairName = repairName; + } + @Override protected Serializable pkVal() { return this.id; 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 2aa214e..2e07102 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 @@ -33,8 +33,13 @@ private static String[] sendArr = {"生产中", "已发货", "待交付"}; @Override - public List selectPageList(Page page, String projectName, Long devTypeId, String devcode, String pm) { - List deviceDtoList = this.baseMapper.selectPageList(page, projectName, devTypeId, devcode, pm); + public List selectPageList(Page page, String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = + this.baseMapper.selectPageList(page, 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])); @@ -42,37 +47,34 @@ return deviceDtoList; } -// @Override -// public void importDevice(List results) { -// List deviceList = new ArrayList<>(); -// for (Device device : results) { -// EntityWrapper wrapper = new EntityWrapper<>(); -// wrapper.eq("devcode", device.getDevcode()); -// List deviceList1 = this.baseMapper.selectList(wrapper); -// for (Device device1 : deviceList1) { -// device1.setIccid(device.getIccid()); -// device1.setImei(device.getImei()); -// device1.setIsSend(device.getIsSend()); -// device1.setDescription(device.getDescription()); -// deviceList.add(device1); -// } -// } -// if (deviceList != null && deviceList.size() > 0) { -// this.insertOrUpdateBatch(deviceList); -// } -// taskService.getUpdateList(); -// } - - - - - @Override public void importDevice(List results) { - this.insertBatch(results); + List deviceList = new ArrayList<>(); + for (Device device : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("devcode", device.getDevcode()); + List deviceList1 = this.baseMapper.selectList(wrapper); + for (Device device1 : deviceList1) { + device1.setIccid(device.getIccid()); + device1.setImei(device.getImei()); + device1.setIsSend(device.getIsSend()); + device1.setDescription(device.getDescription()); + deviceList.add(device1); + } + } + if (deviceList != null && deviceList.size() > 0) { + this.insertOrUpdateBatch(deviceList); + } + taskService.getUpdateList(); } +// @Override +// public void importDevice(List results) { +// this.insertBatch(results); +// } + + @Override public List reportExport(String projectName, Long devTypeId, @@ -96,4 +98,11 @@ public String getDevTypeBydevcode(String devcode) { return this.baseMapper.getDevTypeBydevcode(devcode); } + + @Override + public Device getDeviceByCode(String devcode){ + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.eq("devcode",devcode); + return this.selectOne(deviceEntityWrapper); + } } 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 7cb1f60..1ce57de 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 @@ -3,31 +3,40 @@ 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.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; 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.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.device.service.impl.DeviceServiceImpl; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; -import com.casic.missiles.modular.system.model.*; -import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.util.FileUtil; import com.casic.missiles.modular.task.service.ITaskService; import org.hswebframework.expands.office.excel.ExcelIO; 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.PathVariable; -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.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,13 +57,17 @@ @Autowired private ITaskService taskService; @Autowired - private IProductDeviceTypeService productDeviceTypeService; - @Autowired private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Resource + private ICommonFileService commonFileService; + @Value("${casic.file-download-path}") private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; + /** * 获取设备履历列表 */ @@ -86,8 +99,8 @@ 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():""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); } return new SuccessResponseData(super.packForBT(page)); } @@ -98,11 +111,36 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { + if (null == deviceService.getDeviceByCode(productRepairRecords.getDevcode())) { + return ResponseData.error(400, "设备编号不存在"); + } productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath1())){ +// productRepairRecords.setPhotopath1(productRepairRecords.getPhotopath1()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath2())){ +// productRepairRecords.setPhotopath2(productRepairRecords.getPhotopath2()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath3())){ +// productRepairRecords.setPhotopath3(productRepairRecords.getPhotopath3()); +// } +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.insert(productRepairRecords); Task task = taskService.selectById(productRepairRecords.getTaskid()); if ("1".equals(productRepairRecords.getIschange()) && null != task && @@ -110,6 +148,7 @@ if (task.getRemaincount() < 1) return ResponseData.error("备货任务单已无设备"); task.setRemaincount(task.getRemaincount() - 1); + taskService.insertOrUpdate(task); } return ResponseData.success(); } @@ -140,16 +179,30 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.updateById(productRepairRecords); return ResponseData.success(); } + /** * 设备履历详情 */ @@ -170,7 +223,7 @@ String devcode = httpServletRequest.getParameter("devcode"); String begTime = httpServletRequest.getParameter("begTime"); String endTime = httpServletRequest.getParameter("endTime"); - List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + List list = productRepairRecordsService.reportExport(devcode, begTime, endTime); FileInputStream fileInputStream = new FileInputStream(downloadPath + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); try { @@ -189,4 +242,72 @@ fileInputStream.close(); } } + + + /** + * 批量导入履历表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入履历信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("返修时间", "returntimeFmt"); + mapper.put("故障现象", "deviceProblem"); + mapper.put("检查人员", "checkName"); + mapper.put("故障定位", "deviceProblemLocation"); + mapper.put("原因分析", "analysis"); + mapper.put("归零措施", "zeroMeasures"); + mapper.put("维修人员", "repairName"); + mapper.put("完成时间", "finishtimeFmt"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductRepairRecords.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductRepairRecords repairRecords = row.getResult(); + + if (!ToolUtil.isAllEmpty(repairRecords.getDevcode(), repairRecords.getReturntimeFmt())) { + results.add(repairRecords); + } + } + } else { + row.shutdown(); + } + }); + productRepairRecordsService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入履历信息失败"); + } + return ResponseData.success(); + } + + + @RequestMapping(value = "/getPhoto") + 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)); + } + if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { + + 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)); + } + + } + } 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 15b9eb8..b1162d7 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 @@ -15,4 +15,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); + void 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 9c37938..4095754 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 @@ -8,13 +8,16 @@ import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductRepairRecords; import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IAccountService; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.sql.Timestamp; import java.util.List; /** @@ -34,6 +37,8 @@ private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Autowired + private IAccountService accountService; @Override public List reportExport(String devcode, String begTime, String endTime) { @@ -58,4 +63,25 @@ } return productRepairRecordsList; } + + + + @Override + public void importContract(List productRepairRecordsList) { + productRepairRecordsList.forEach(repairRecords -> { + if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + Account user = accountService.findUserByName(repairRecords.getCheckName()); + repairRecords.setCheckmanId(user!=null?user.getId():null); + } + if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + Account user = accountService.findUserByName(repairRecords.getRepairName()); + 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); + }); + this.insertBatch(productRepairRecordsList); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java index 5ee1e20..5d75451 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -11,18 +11,15 @@ import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ContractDict; -import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.model.Account; -import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.service.IAccountService; +import com.casic.missiles.modular.system.service.IContractService; import org.hswebframework.expands.office.excel.ExcelIO; 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.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -72,12 +69,13 @@ */ @RequestMapping(value = "/pageList") @ResponseBody - public Object listPage(String keyword1,String keyword2,String keyword3) { + public Object listPage(String keyword1, String keyword2, String keyword3) { Page page = new PageFactory().defaultPage(); - List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + List contractList = contractService.selectPageList(page, keyword1, keyword2, keyword3); page.setRecords(contractList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增 */ @@ -87,10 +85,10 @@ public Object add(Contract contract) { //合同编号一样,则覆盖 EntityWrapper contractEntityWrapper = new EntityWrapper<>(); - contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractEntityWrapper.eq("contract_number", contract.getContractNumber()); contractService.delete(contractEntityWrapper); - Account user=userService.findUserByName(contract.getPrincipal()); - contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.insert(contract); return ResponseData.success(); } @@ -122,15 +120,15 @@ @ResponseBody @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) public Object baseUpdate(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setContractNumber(contract.getContractNumber()); contract1.setContractName(contract.getContractName()); contract1.setContractAmount(contract.getContractAmount()); contract1.setContractContent(contract.getContractContent()); contract1.setContractFactory(contract.getContractFactory()); contract1.setPrincipal(contract.getPrincipal()); - Account user=userService.findUserByName(contract.getPrincipal()); - contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.updateById(contract1); return ResponseData.success(); } @@ -142,13 +140,14 @@ @ResponseBody @BussinessLog(value = "修改内网流程信息") public Object update(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setExternalCheckApply(contract.getExternalCheckApply()); contract1.setExternalContractApply(contract.getExternalContractApply()); contract1.setExternalProjectApply(contract.getExternalProjectApply()); contractService.updateById(contract1); return ResponseData.success(); } + /** * 导出合同列表 */ @@ -160,7 +159,7 @@ String keyword3 = httpServletRequest.getParameter("keyword3"); List list = contractService.reportExport(keyword1, keyword2, keyword3); FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + (list != null && list.size() > 0 ? "contractList.xlsx" : "contentNull.xlsx")); try { httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); @@ -223,13 +222,14 @@ /** * 根据id查详情 + * * @param id * @return */ @RequestMapping(value = "/selectById") @ResponseBody public Object detail(Long id) { - return ResponseData.success(200, + return ResponseData.success(200, "查询详情成功", contractService.selectById(id)); } @@ -245,4 +245,5 @@ List contractList = contractService.selectList(entityWrapper); return ResponseData.success(200, "", contractList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 509ad80..844ace2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -7,8 +7,12 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.service.IProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -16,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -33,6 +39,8 @@ @Autowired private IProjectService projectService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; /** * 获取项目管理列表 @@ -111,4 +119,25 @@ List projects = projectService.selectList(entityWrapper); return ResponseData.success(200, "", projects); } + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getDevTypes") + @ResponseBody + public Object getDevTypes(Long projectId) { + List deviceTypeDtos = new ArrayList<>(); + Project project = projectService.selectById(projectId); + if (ToolUtil.isNotEmpty(project) && ToolUtil.isNotEmpty(project.getDevTpeIds())) { + List productDeviceTypes = productDeviceTypeService. + selectBatchIds(Arrays.asList(project.getDevTpeIds().split(","))); + productDeviceTypes.forEach(productDeviceType -> { + DeviceTypeDto deviceTypeDto = new DeviceTypeDto(); + deviceTypeDto.setId(productDeviceType.getId()); + deviceTypeDto.setProductName(productDeviceType.getProductName()); + deviceTypeDtos.add(deviceTypeDto); + }); + } + return ResponseData.success(200, "", deviceTypeDtos); + } } 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 b57ce8e..0ca769c 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 @@ -21,7 +21,10 @@ @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); List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, 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 4a8d514..3426519 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 @@ -34,6 +34,8 @@ 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 as descn FROM product_device pd @@ -45,6 +47,8 @@ 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 @@ -55,11 +59,19 @@ 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 @@ -105,6 +117,7 @@ LEFT JOIN product_task pt ON pt.`id`=pb.`task_id` LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 @@ -113,5 +126,6 @@ LEFT JOIN product_device_type pdt ON pd.`devtype_id`=pdt.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml index 3efe420..537a52e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -34,6 +34,7 @@ pt.`devmode_id` AS devmodeId, pt.`devcount`, pt.`isstored`, + pt.`status`, pt.`isSend`, pc.`contract_number` AS contractNumber, pt.`devtype_id` AS devtypeId, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java index 43328de..85b7370 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -17,6 +17,8 @@ private String cardType; private String operator; private String descn ; + private String contractorNumber ; + private String productModel; public Long getId() { return id; @@ -145,4 +147,20 @@ public void setDescn(String descn) { this.descn = descn; } + + public String getContractorNumber() { + return contractorNumber; + } + + public void setContractorNumber(String contractorNumber) { + this.contractorNumber = contractorNumber; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java index 81516b7..63ba43e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -32,6 +32,7 @@ private Long devtypeId; @TableField("task_id") private Long taskId; + private Long remaincount; private Date createtime; @@ -91,6 +92,14 @@ this.devtypeId = devtypeId; } + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java index 893a1ed..8663e63 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -52,6 +52,7 @@ private String netFlow; @TableField("deptid") private String deptid; + private String isstored; public String getContractNumber() { return contractNumber; @@ -165,6 +166,14 @@ this.deptid = deptid; } + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java index eb0f678..c7ba0b6 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -91,6 +91,12 @@ private Long taskid; + private String photopath1; + + private String photopath2; + + private String photopath3; + @TableField(exist = false) private String returntimeFmt; @@ -105,6 +111,8 @@ @TableField(exist = false) private String checkName; + @TableField(exist = false) + private String repairName; public Long getId() { return id; @@ -250,7 +258,6 @@ this.zeroMeasures = zeroMeasures; } - public String getReturntimeFmt() { return returntimeFmt; } @@ -267,6 +274,38 @@ this.finishtimeFmt = finishtimeFmt; } + public String getPhotopath1() { + return photopath1; + } + + public void setPhotopath1(String photopath1) { + this.photopath1 = photopath1; + } + + public String getPhotopath2() { + return photopath2; + } + + public void setPhotopath2(String photopath2) { + this.photopath2 = photopath2; + } + + public String getPhotopath3() { + return photopath3; + } + + public void setPhotopath3(String photopath3) { + this.photopath3 = photopath3; + } + + public String getRepairName() { + return repairName; + } + + public void setRepairName(String repairName) { + this.repairName = repairName; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java index 00cbc92..89face9 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -29,6 +29,7 @@ @TableField("project_manager") private String projectManager; private String descn; + private String devTpeIds; @TableField("createtime") private Date createtime; @@ -81,6 +82,14 @@ this.createtime = createtime; } + public String getDevTpeIds() { + return devTpeIds; + } + + public void setDevTpeIds(String devTpeIds) { + this.devTpeIds = devTpeIds; + } + @Override protected Serializable pkVal() { return this.id; 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 2aa214e..2e07102 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 @@ -33,8 +33,13 @@ private static String[] sendArr = {"生产中", "已发货", "待交付"}; @Override - public List selectPageList(Page page, String projectName, Long devTypeId, String devcode, String pm) { - List deviceDtoList = this.baseMapper.selectPageList(page, projectName, devTypeId, devcode, pm); + public List selectPageList(Page page, String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = + this.baseMapper.selectPageList(page, 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])); @@ -42,37 +47,34 @@ return deviceDtoList; } -// @Override -// public void importDevice(List results) { -// List deviceList = new ArrayList<>(); -// for (Device device : results) { -// EntityWrapper wrapper = new EntityWrapper<>(); -// wrapper.eq("devcode", device.getDevcode()); -// List deviceList1 = this.baseMapper.selectList(wrapper); -// for (Device device1 : deviceList1) { -// device1.setIccid(device.getIccid()); -// device1.setImei(device.getImei()); -// device1.setIsSend(device.getIsSend()); -// device1.setDescription(device.getDescription()); -// deviceList.add(device1); -// } -// } -// if (deviceList != null && deviceList.size() > 0) { -// this.insertOrUpdateBatch(deviceList); -// } -// taskService.getUpdateList(); -// } - - - - - @Override public void importDevice(List results) { - this.insertBatch(results); + List deviceList = new ArrayList<>(); + for (Device device : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("devcode", device.getDevcode()); + List deviceList1 = this.baseMapper.selectList(wrapper); + for (Device device1 : deviceList1) { + device1.setIccid(device.getIccid()); + device1.setImei(device.getImei()); + device1.setIsSend(device.getIsSend()); + device1.setDescription(device.getDescription()); + deviceList.add(device1); + } + } + if (deviceList != null && deviceList.size() > 0) { + this.insertOrUpdateBatch(deviceList); + } + taskService.getUpdateList(); } +// @Override +// public void importDevice(List results) { +// this.insertBatch(results); +// } + + @Override public List reportExport(String projectName, Long devTypeId, @@ -96,4 +98,11 @@ public String getDevTypeBydevcode(String devcode) { return this.baseMapper.getDevTypeBydevcode(devcode); } + + @Override + public Device getDeviceByCode(String devcode){ + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.eq("devcode",devcode); + return this.selectOne(deviceEntityWrapper); + } } 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 7cb1f60..1ce57de 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 @@ -3,31 +3,40 @@ 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.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; 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.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.device.service.impl.DeviceServiceImpl; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; -import com.casic.missiles.modular.system.model.*; -import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.util.FileUtil; import com.casic.missiles.modular.task.service.ITaskService; import org.hswebframework.expands.office.excel.ExcelIO; 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.PathVariable; -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.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,13 +57,17 @@ @Autowired private ITaskService taskService; @Autowired - private IProductDeviceTypeService productDeviceTypeService; - @Autowired private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Resource + private ICommonFileService commonFileService; + @Value("${casic.file-download-path}") private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; + /** * 获取设备履历列表 */ @@ -86,8 +99,8 @@ 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():""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); } return new SuccessResponseData(super.packForBT(page)); } @@ -98,11 +111,36 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { + if (null == deviceService.getDeviceByCode(productRepairRecords.getDevcode())) { + return ResponseData.error(400, "设备编号不存在"); + } productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath1())){ +// productRepairRecords.setPhotopath1(productRepairRecords.getPhotopath1()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath2())){ +// productRepairRecords.setPhotopath2(productRepairRecords.getPhotopath2()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath3())){ +// productRepairRecords.setPhotopath3(productRepairRecords.getPhotopath3()); +// } +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.insert(productRepairRecords); Task task = taskService.selectById(productRepairRecords.getTaskid()); if ("1".equals(productRepairRecords.getIschange()) && null != task && @@ -110,6 +148,7 @@ if (task.getRemaincount() < 1) return ResponseData.error("备货任务单已无设备"); task.setRemaincount(task.getRemaincount() - 1); + taskService.insertOrUpdate(task); } return ResponseData.success(); } @@ -140,16 +179,30 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.updateById(productRepairRecords); return ResponseData.success(); } + /** * 设备履历详情 */ @@ -170,7 +223,7 @@ String devcode = httpServletRequest.getParameter("devcode"); String begTime = httpServletRequest.getParameter("begTime"); String endTime = httpServletRequest.getParameter("endTime"); - List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + List list = productRepairRecordsService.reportExport(devcode, begTime, endTime); FileInputStream fileInputStream = new FileInputStream(downloadPath + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); try { @@ -189,4 +242,72 @@ fileInputStream.close(); } } + + + /** + * 批量导入履历表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入履历信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("返修时间", "returntimeFmt"); + mapper.put("故障现象", "deviceProblem"); + mapper.put("检查人员", "checkName"); + mapper.put("故障定位", "deviceProblemLocation"); + mapper.put("原因分析", "analysis"); + mapper.put("归零措施", "zeroMeasures"); + mapper.put("维修人员", "repairName"); + mapper.put("完成时间", "finishtimeFmt"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductRepairRecords.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductRepairRecords repairRecords = row.getResult(); + + if (!ToolUtil.isAllEmpty(repairRecords.getDevcode(), repairRecords.getReturntimeFmt())) { + results.add(repairRecords); + } + } + } else { + row.shutdown(); + } + }); + productRepairRecordsService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入履历信息失败"); + } + return ResponseData.success(); + } + + + @RequestMapping(value = "/getPhoto") + 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)); + } + if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { + + 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)); + } + + } + } 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 15b9eb8..b1162d7 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 @@ -15,4 +15,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); + void 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 9c37938..4095754 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 @@ -8,13 +8,16 @@ import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductRepairRecords; import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IAccountService; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.sql.Timestamp; import java.util.List; /** @@ -34,6 +37,8 @@ private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Autowired + private IAccountService accountService; @Override public List reportExport(String devcode, String begTime, String endTime) { @@ -58,4 +63,25 @@ } return productRepairRecordsList; } + + + + @Override + public void importContract(List productRepairRecordsList) { + productRepairRecordsList.forEach(repairRecords -> { + if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + Account user = accountService.findUserByName(repairRecords.getCheckName()); + repairRecords.setCheckmanId(user!=null?user.getId():null); + } + if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + Account user = accountService.findUserByName(repairRecords.getRepairName()); + 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); + }); + this.insertBatch(productRepairRecordsList); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java index 5ee1e20..5d75451 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -11,18 +11,15 @@ import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ContractDict; -import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.model.Account; -import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.service.IAccountService; +import com.casic.missiles.modular.system.service.IContractService; import org.hswebframework.expands.office.excel.ExcelIO; 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.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -72,12 +69,13 @@ */ @RequestMapping(value = "/pageList") @ResponseBody - public Object listPage(String keyword1,String keyword2,String keyword3) { + public Object listPage(String keyword1, String keyword2, String keyword3) { Page page = new PageFactory().defaultPage(); - List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + List contractList = contractService.selectPageList(page, keyword1, keyword2, keyword3); page.setRecords(contractList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增 */ @@ -87,10 +85,10 @@ public Object add(Contract contract) { //合同编号一样,则覆盖 EntityWrapper contractEntityWrapper = new EntityWrapper<>(); - contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractEntityWrapper.eq("contract_number", contract.getContractNumber()); contractService.delete(contractEntityWrapper); - Account user=userService.findUserByName(contract.getPrincipal()); - contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.insert(contract); return ResponseData.success(); } @@ -122,15 +120,15 @@ @ResponseBody @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) public Object baseUpdate(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setContractNumber(contract.getContractNumber()); contract1.setContractName(contract.getContractName()); contract1.setContractAmount(contract.getContractAmount()); contract1.setContractContent(contract.getContractContent()); contract1.setContractFactory(contract.getContractFactory()); contract1.setPrincipal(contract.getPrincipal()); - Account user=userService.findUserByName(contract.getPrincipal()); - contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.updateById(contract1); return ResponseData.success(); } @@ -142,13 +140,14 @@ @ResponseBody @BussinessLog(value = "修改内网流程信息") public Object update(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setExternalCheckApply(contract.getExternalCheckApply()); contract1.setExternalContractApply(contract.getExternalContractApply()); contract1.setExternalProjectApply(contract.getExternalProjectApply()); contractService.updateById(contract1); return ResponseData.success(); } + /** * 导出合同列表 */ @@ -160,7 +159,7 @@ String keyword3 = httpServletRequest.getParameter("keyword3"); List list = contractService.reportExport(keyword1, keyword2, keyword3); FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + (list != null && list.size() > 0 ? "contractList.xlsx" : "contentNull.xlsx")); try { httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); @@ -223,13 +222,14 @@ /** * 根据id查详情 + * * @param id * @return */ @RequestMapping(value = "/selectById") @ResponseBody public Object detail(Long id) { - return ResponseData.success(200, + return ResponseData.success(200, "查询详情成功", contractService.selectById(id)); } @@ -245,4 +245,5 @@ List contractList = contractService.selectList(entityWrapper); return ResponseData.success(200, "", contractList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 509ad80..844ace2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -7,8 +7,12 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.service.IProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -16,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -33,6 +39,8 @@ @Autowired private IProjectService projectService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; /** * 获取项目管理列表 @@ -111,4 +119,25 @@ List projects = projectService.selectList(entityWrapper); return ResponseData.success(200, "", projects); } + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getDevTypes") + @ResponseBody + public Object getDevTypes(Long projectId) { + List deviceTypeDtos = new ArrayList<>(); + Project project = projectService.selectById(projectId); + if (ToolUtil.isNotEmpty(project) && ToolUtil.isNotEmpty(project.getDevTpeIds())) { + List productDeviceTypes = productDeviceTypeService. + selectBatchIds(Arrays.asList(project.getDevTpeIds().split(","))); + productDeviceTypes.forEach(productDeviceType -> { + DeviceTypeDto deviceTypeDto = new DeviceTypeDto(); + deviceTypeDto.setId(productDeviceType.getId()); + deviceTypeDto.setProductName(productDeviceType.getProductName()); + deviceTypeDtos.add(deviceTypeDto); + }); + } + return ResponseData.success(200, "", deviceTypeDtos); + } } 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 b57ce8e..0ca769c 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 @@ -21,7 +21,10 @@ @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); List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, 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 4a8d514..3426519 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 @@ -34,6 +34,8 @@ 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 as descn FROM product_device pd @@ -45,6 +47,8 @@ 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 @@ -55,11 +59,19 @@ 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 @@ -105,6 +117,7 @@ LEFT JOIN product_task pt ON pt.`id`=pb.`task_id` LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 @@ -113,5 +126,6 @@ LEFT JOIN product_device_type pdt ON pd.`devtype_id`=pdt.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml index 3efe420..537a52e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -34,6 +34,7 @@ pt.`devmode_id` AS devmodeId, pt.`devcount`, pt.`isstored`, + pt.`status`, pt.`isSend`, pc.`contract_number` AS contractNumber, pt.`devtype_id` AS devtypeId, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java index 43328de..85b7370 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -17,6 +17,8 @@ private String cardType; private String operator; private String descn ; + private String contractorNumber ; + private String productModel; public Long getId() { return id; @@ -145,4 +147,20 @@ public void setDescn(String descn) { this.descn = descn; } + + public String getContractorNumber() { + return contractorNumber; + } + + public void setContractorNumber(String contractorNumber) { + this.contractorNumber = contractorNumber; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java index 81516b7..63ba43e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -32,6 +32,7 @@ private Long devtypeId; @TableField("task_id") private Long taskId; + private Long remaincount; private Date createtime; @@ -91,6 +92,14 @@ this.devtypeId = devtypeId; } + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java index 893a1ed..8663e63 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -52,6 +52,7 @@ private String netFlow; @TableField("deptid") private String deptid; + private String isstored; public String getContractNumber() { return contractNumber; @@ -165,6 +166,14 @@ this.deptid = deptid; } + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java index eb0f678..c7ba0b6 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -91,6 +91,12 @@ private Long taskid; + private String photopath1; + + private String photopath2; + + private String photopath3; + @TableField(exist = false) private String returntimeFmt; @@ -105,6 +111,8 @@ @TableField(exist = false) private String checkName; + @TableField(exist = false) + private String repairName; public Long getId() { return id; @@ -250,7 +258,6 @@ this.zeroMeasures = zeroMeasures; } - public String getReturntimeFmt() { return returntimeFmt; } @@ -267,6 +274,38 @@ this.finishtimeFmt = finishtimeFmt; } + public String getPhotopath1() { + return photopath1; + } + + public void setPhotopath1(String photopath1) { + this.photopath1 = photopath1; + } + + public String getPhotopath2() { + return photopath2; + } + + public void setPhotopath2(String photopath2) { + this.photopath2 = photopath2; + } + + public String getPhotopath3() { + return photopath3; + } + + public void setPhotopath3(String photopath3) { + this.photopath3 = photopath3; + } + + public String getRepairName() { + return repairName; + } + + public void setRepairName(String repairName) { + this.repairName = repairName; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java index 00cbc92..89face9 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -29,6 +29,7 @@ @TableField("project_manager") private String projectManager; private String descn; + private String devTpeIds; @TableField("createtime") private Date createtime; @@ -81,6 +82,14 @@ this.createtime = createtime; } + public String getDevTpeIds() { + return devTpeIds; + } + + public void setDevTpeIds(String devTpeIds) { + this.devTpeIds = devTpeIds; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java index 4b610c4..c9f74d1 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -34,6 +34,7 @@ private Date deliveryTime; private String demand; private String isstored; + private String status; private String isSend; private String cardType; private String operator; @@ -205,6 +206,15 @@ this.operator = operator; } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + @Override protected Serializable pkVal() { return this.id; 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 2aa214e..2e07102 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 @@ -33,8 +33,13 @@ private static String[] sendArr = {"生产中", "已发货", "待交付"}; @Override - public List selectPageList(Page page, String projectName, Long devTypeId, String devcode, String pm) { - List deviceDtoList = this.baseMapper.selectPageList(page, projectName, devTypeId, devcode, pm); + public List selectPageList(Page page, String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = + this.baseMapper.selectPageList(page, 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])); @@ -42,37 +47,34 @@ return deviceDtoList; } -// @Override -// public void importDevice(List results) { -// List deviceList = new ArrayList<>(); -// for (Device device : results) { -// EntityWrapper wrapper = new EntityWrapper<>(); -// wrapper.eq("devcode", device.getDevcode()); -// List deviceList1 = this.baseMapper.selectList(wrapper); -// for (Device device1 : deviceList1) { -// device1.setIccid(device.getIccid()); -// device1.setImei(device.getImei()); -// device1.setIsSend(device.getIsSend()); -// device1.setDescription(device.getDescription()); -// deviceList.add(device1); -// } -// } -// if (deviceList != null && deviceList.size() > 0) { -// this.insertOrUpdateBatch(deviceList); -// } -// taskService.getUpdateList(); -// } - - - - - @Override public void importDevice(List results) { - this.insertBatch(results); + List deviceList = new ArrayList<>(); + for (Device device : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("devcode", device.getDevcode()); + List deviceList1 = this.baseMapper.selectList(wrapper); + for (Device device1 : deviceList1) { + device1.setIccid(device.getIccid()); + device1.setImei(device.getImei()); + device1.setIsSend(device.getIsSend()); + device1.setDescription(device.getDescription()); + deviceList.add(device1); + } + } + if (deviceList != null && deviceList.size() > 0) { + this.insertOrUpdateBatch(deviceList); + } + taskService.getUpdateList(); } +// @Override +// public void importDevice(List results) { +// this.insertBatch(results); +// } + + @Override public List reportExport(String projectName, Long devTypeId, @@ -96,4 +98,11 @@ public String getDevTypeBydevcode(String devcode) { return this.baseMapper.getDevTypeBydevcode(devcode); } + + @Override + public Device getDeviceByCode(String devcode){ + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.eq("devcode",devcode); + return this.selectOne(deviceEntityWrapper); + } } 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 7cb1f60..1ce57de 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 @@ -3,31 +3,40 @@ 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.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; 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.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.device.service.impl.DeviceServiceImpl; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; -import com.casic.missiles.modular.system.model.*; -import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.util.FileUtil; import com.casic.missiles.modular.task.service.ITaskService; import org.hswebframework.expands.office.excel.ExcelIO; 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.PathVariable; -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.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,13 +57,17 @@ @Autowired private ITaskService taskService; @Autowired - private IProductDeviceTypeService productDeviceTypeService; - @Autowired private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Resource + private ICommonFileService commonFileService; + @Value("${casic.file-download-path}") private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; + /** * 获取设备履历列表 */ @@ -86,8 +99,8 @@ 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():""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); } return new SuccessResponseData(super.packForBT(page)); } @@ -98,11 +111,36 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { + if (null == deviceService.getDeviceByCode(productRepairRecords.getDevcode())) { + return ResponseData.error(400, "设备编号不存在"); + } productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath1())){ +// productRepairRecords.setPhotopath1(productRepairRecords.getPhotopath1()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath2())){ +// productRepairRecords.setPhotopath2(productRepairRecords.getPhotopath2()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath3())){ +// productRepairRecords.setPhotopath3(productRepairRecords.getPhotopath3()); +// } +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.insert(productRepairRecords); Task task = taskService.selectById(productRepairRecords.getTaskid()); if ("1".equals(productRepairRecords.getIschange()) && null != task && @@ -110,6 +148,7 @@ if (task.getRemaincount() < 1) return ResponseData.error("备货任务单已无设备"); task.setRemaincount(task.getRemaincount() - 1); + taskService.insertOrUpdate(task); } return ResponseData.success(); } @@ -140,16 +179,30 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.updateById(productRepairRecords); return ResponseData.success(); } + /** * 设备履历详情 */ @@ -170,7 +223,7 @@ String devcode = httpServletRequest.getParameter("devcode"); String begTime = httpServletRequest.getParameter("begTime"); String endTime = httpServletRequest.getParameter("endTime"); - List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + List list = productRepairRecordsService.reportExport(devcode, begTime, endTime); FileInputStream fileInputStream = new FileInputStream(downloadPath + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); try { @@ -189,4 +242,72 @@ fileInputStream.close(); } } + + + /** + * 批量导入履历表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入履历信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("返修时间", "returntimeFmt"); + mapper.put("故障现象", "deviceProblem"); + mapper.put("检查人员", "checkName"); + mapper.put("故障定位", "deviceProblemLocation"); + mapper.put("原因分析", "analysis"); + mapper.put("归零措施", "zeroMeasures"); + mapper.put("维修人员", "repairName"); + mapper.put("完成时间", "finishtimeFmt"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductRepairRecords.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductRepairRecords repairRecords = row.getResult(); + + if (!ToolUtil.isAllEmpty(repairRecords.getDevcode(), repairRecords.getReturntimeFmt())) { + results.add(repairRecords); + } + } + } else { + row.shutdown(); + } + }); + productRepairRecordsService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入履历信息失败"); + } + return ResponseData.success(); + } + + + @RequestMapping(value = "/getPhoto") + 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)); + } + if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { + + 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)); + } + + } + } 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 15b9eb8..b1162d7 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 @@ -15,4 +15,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); + void 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 9c37938..4095754 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 @@ -8,13 +8,16 @@ import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductRepairRecords; import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IAccountService; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.sql.Timestamp; import java.util.List; /** @@ -34,6 +37,8 @@ private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Autowired + private IAccountService accountService; @Override public List reportExport(String devcode, String begTime, String endTime) { @@ -58,4 +63,25 @@ } return productRepairRecordsList; } + + + + @Override + public void importContract(List productRepairRecordsList) { + productRepairRecordsList.forEach(repairRecords -> { + if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + Account user = accountService.findUserByName(repairRecords.getCheckName()); + repairRecords.setCheckmanId(user!=null?user.getId():null); + } + if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + Account user = accountService.findUserByName(repairRecords.getRepairName()); + 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); + }); + this.insertBatch(productRepairRecordsList); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java index 5ee1e20..5d75451 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -11,18 +11,15 @@ import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ContractDict; -import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.model.Account; -import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.service.IAccountService; +import com.casic.missiles.modular.system.service.IContractService; import org.hswebframework.expands.office.excel.ExcelIO; 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.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -72,12 +69,13 @@ */ @RequestMapping(value = "/pageList") @ResponseBody - public Object listPage(String keyword1,String keyword2,String keyword3) { + public Object listPage(String keyword1, String keyword2, String keyword3) { Page page = new PageFactory().defaultPage(); - List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + List contractList = contractService.selectPageList(page, keyword1, keyword2, keyword3); page.setRecords(contractList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增 */ @@ -87,10 +85,10 @@ public Object add(Contract contract) { //合同编号一样,则覆盖 EntityWrapper contractEntityWrapper = new EntityWrapper<>(); - contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractEntityWrapper.eq("contract_number", contract.getContractNumber()); contractService.delete(contractEntityWrapper); - Account user=userService.findUserByName(contract.getPrincipal()); - contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.insert(contract); return ResponseData.success(); } @@ -122,15 +120,15 @@ @ResponseBody @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) public Object baseUpdate(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setContractNumber(contract.getContractNumber()); contract1.setContractName(contract.getContractName()); contract1.setContractAmount(contract.getContractAmount()); contract1.setContractContent(contract.getContractContent()); contract1.setContractFactory(contract.getContractFactory()); contract1.setPrincipal(contract.getPrincipal()); - Account user=userService.findUserByName(contract.getPrincipal()); - contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.updateById(contract1); return ResponseData.success(); } @@ -142,13 +140,14 @@ @ResponseBody @BussinessLog(value = "修改内网流程信息") public Object update(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setExternalCheckApply(contract.getExternalCheckApply()); contract1.setExternalContractApply(contract.getExternalContractApply()); contract1.setExternalProjectApply(contract.getExternalProjectApply()); contractService.updateById(contract1); return ResponseData.success(); } + /** * 导出合同列表 */ @@ -160,7 +159,7 @@ String keyword3 = httpServletRequest.getParameter("keyword3"); List list = contractService.reportExport(keyword1, keyword2, keyword3); FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + (list != null && list.size() > 0 ? "contractList.xlsx" : "contentNull.xlsx")); try { httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); @@ -223,13 +222,14 @@ /** * 根据id查详情 + * * @param id * @return */ @RequestMapping(value = "/selectById") @ResponseBody public Object detail(Long id) { - return ResponseData.success(200, + return ResponseData.success(200, "查询详情成功", contractService.selectById(id)); } @@ -245,4 +245,5 @@ List contractList = contractService.selectList(entityWrapper); return ResponseData.success(200, "", contractList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 509ad80..844ace2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -7,8 +7,12 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.service.IProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -16,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -33,6 +39,8 @@ @Autowired private IProjectService projectService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; /** * 获取项目管理列表 @@ -111,4 +119,25 @@ List projects = projectService.selectList(entityWrapper); return ResponseData.success(200, "", projects); } + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getDevTypes") + @ResponseBody + public Object getDevTypes(Long projectId) { + List deviceTypeDtos = new ArrayList<>(); + Project project = projectService.selectById(projectId); + if (ToolUtil.isNotEmpty(project) && ToolUtil.isNotEmpty(project.getDevTpeIds())) { + List productDeviceTypes = productDeviceTypeService. + selectBatchIds(Arrays.asList(project.getDevTpeIds().split(","))); + productDeviceTypes.forEach(productDeviceType -> { + DeviceTypeDto deviceTypeDto = new DeviceTypeDto(); + deviceTypeDto.setId(productDeviceType.getId()); + deviceTypeDto.setProductName(productDeviceType.getProductName()); + deviceTypeDtos.add(deviceTypeDto); + }); + } + return ResponseData.success(200, "", deviceTypeDtos); + } } 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 b57ce8e..0ca769c 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 @@ -21,7 +21,10 @@ @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); List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, 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 4a8d514..3426519 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 @@ -34,6 +34,8 @@ 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 as descn FROM product_device pd @@ -45,6 +47,8 @@ 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 @@ -55,11 +59,19 @@ 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 @@ -105,6 +117,7 @@ LEFT JOIN product_task pt ON pt.`id`=pb.`task_id` LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 @@ -113,5 +126,6 @@ LEFT JOIN product_device_type pdt ON pd.`devtype_id`=pdt.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml index 3efe420..537a52e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -34,6 +34,7 @@ pt.`devmode_id` AS devmodeId, pt.`devcount`, pt.`isstored`, + pt.`status`, pt.`isSend`, pc.`contract_number` AS contractNumber, pt.`devtype_id` AS devtypeId, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java index 43328de..85b7370 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -17,6 +17,8 @@ private String cardType; private String operator; private String descn ; + private String contractorNumber ; + private String productModel; public Long getId() { return id; @@ -145,4 +147,20 @@ public void setDescn(String descn) { this.descn = descn; } + + public String getContractorNumber() { + return contractorNumber; + } + + public void setContractorNumber(String contractorNumber) { + this.contractorNumber = contractorNumber; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java index 81516b7..63ba43e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -32,6 +32,7 @@ private Long devtypeId; @TableField("task_id") private Long taskId; + private Long remaincount; private Date createtime; @@ -91,6 +92,14 @@ this.devtypeId = devtypeId; } + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java index 893a1ed..8663e63 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -52,6 +52,7 @@ private String netFlow; @TableField("deptid") private String deptid; + private String isstored; public String getContractNumber() { return contractNumber; @@ -165,6 +166,14 @@ this.deptid = deptid; } + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java index eb0f678..c7ba0b6 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -91,6 +91,12 @@ private Long taskid; + private String photopath1; + + private String photopath2; + + private String photopath3; + @TableField(exist = false) private String returntimeFmt; @@ -105,6 +111,8 @@ @TableField(exist = false) private String checkName; + @TableField(exist = false) + private String repairName; public Long getId() { return id; @@ -250,7 +258,6 @@ this.zeroMeasures = zeroMeasures; } - public String getReturntimeFmt() { return returntimeFmt; } @@ -267,6 +274,38 @@ this.finishtimeFmt = finishtimeFmt; } + public String getPhotopath1() { + return photopath1; + } + + public void setPhotopath1(String photopath1) { + this.photopath1 = photopath1; + } + + public String getPhotopath2() { + return photopath2; + } + + public void setPhotopath2(String photopath2) { + this.photopath2 = photopath2; + } + + public String getPhotopath3() { + return photopath3; + } + + public void setPhotopath3(String photopath3) { + this.photopath3 = photopath3; + } + + public String getRepairName() { + return repairName; + } + + public void setRepairName(String repairName) { + this.repairName = repairName; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java index 00cbc92..89face9 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -29,6 +29,7 @@ @TableField("project_manager") private String projectManager; private String descn; + private String devTpeIds; @TableField("createtime") private Date createtime; @@ -81,6 +82,14 @@ this.createtime = createtime; } + public String getDevTpeIds() { + return devTpeIds; + } + + public void setDevTpeIds(String devTpeIds) { + this.devTpeIds = devTpeIds; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java index 4b610c4..c9f74d1 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -34,6 +34,7 @@ private Date deliveryTime; private String demand; private String isstored; + private String status; private String isSend; private String cardType; private String operator; @@ -205,6 +206,15 @@ this.operator = operator; } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java index 7497dc7..5a08962 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -1,11 +1,16 @@ package com.casic.missiles.modular.system.util; +import org.springframework.web.multipart.MultipartFile; + import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.UUID; public class FileUtil { public static File createFile(String path) throws IOException { @@ -56,4 +61,22 @@ return fileName; } + + public static String saveFile(MultipartFile file,String filePath) throws IOException { + if (!file.isEmpty()) { + String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + return fileName.concat(File.separator).concat(filePrex); + } else { + 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 2aa214e..2e07102 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 @@ -33,8 +33,13 @@ private static String[] sendArr = {"生产中", "已发货", "待交付"}; @Override - public List selectPageList(Page page, String projectName, Long devTypeId, String devcode, String pm) { - List deviceDtoList = this.baseMapper.selectPageList(page, projectName, devTypeId, devcode, pm); + public List selectPageList(Page page, String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = + this.baseMapper.selectPageList(page, 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])); @@ -42,37 +47,34 @@ return deviceDtoList; } -// @Override -// public void importDevice(List results) { -// List deviceList = new ArrayList<>(); -// for (Device device : results) { -// EntityWrapper wrapper = new EntityWrapper<>(); -// wrapper.eq("devcode", device.getDevcode()); -// List deviceList1 = this.baseMapper.selectList(wrapper); -// for (Device device1 : deviceList1) { -// device1.setIccid(device.getIccid()); -// device1.setImei(device.getImei()); -// device1.setIsSend(device.getIsSend()); -// device1.setDescription(device.getDescription()); -// deviceList.add(device1); -// } -// } -// if (deviceList != null && deviceList.size() > 0) { -// this.insertOrUpdateBatch(deviceList); -// } -// taskService.getUpdateList(); -// } - - - - - @Override public void importDevice(List results) { - this.insertBatch(results); + List deviceList = new ArrayList<>(); + for (Device device : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("devcode", device.getDevcode()); + List deviceList1 = this.baseMapper.selectList(wrapper); + for (Device device1 : deviceList1) { + device1.setIccid(device.getIccid()); + device1.setImei(device.getImei()); + device1.setIsSend(device.getIsSend()); + device1.setDescription(device.getDescription()); + deviceList.add(device1); + } + } + if (deviceList != null && deviceList.size() > 0) { + this.insertOrUpdateBatch(deviceList); + } + taskService.getUpdateList(); } +// @Override +// public void importDevice(List results) { +// this.insertBatch(results); +// } + + @Override public List reportExport(String projectName, Long devTypeId, @@ -96,4 +98,11 @@ public String getDevTypeBydevcode(String devcode) { return this.baseMapper.getDevTypeBydevcode(devcode); } + + @Override + public Device getDeviceByCode(String devcode){ + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.eq("devcode",devcode); + return this.selectOne(deviceEntityWrapper); + } } 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 7cb1f60..1ce57de 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 @@ -3,31 +3,40 @@ 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.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; 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.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.device.service.impl.DeviceServiceImpl; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; -import com.casic.missiles.modular.system.model.*; -import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.util.FileUtil; import com.casic.missiles.modular.task.service.ITaskService; import org.hswebframework.expands.office.excel.ExcelIO; 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.PathVariable; -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.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,13 +57,17 @@ @Autowired private ITaskService taskService; @Autowired - private IProductDeviceTypeService productDeviceTypeService; - @Autowired private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Resource + private ICommonFileService commonFileService; + @Value("${casic.file-download-path}") private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; + /** * 获取设备履历列表 */ @@ -86,8 +99,8 @@ 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():""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); } return new SuccessResponseData(super.packForBT(page)); } @@ -98,11 +111,36 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { + if (null == deviceService.getDeviceByCode(productRepairRecords.getDevcode())) { + return ResponseData.error(400, "设备编号不存在"); + } productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath1())){ +// productRepairRecords.setPhotopath1(productRepairRecords.getPhotopath1()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath2())){ +// productRepairRecords.setPhotopath2(productRepairRecords.getPhotopath2()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath3())){ +// productRepairRecords.setPhotopath3(productRepairRecords.getPhotopath3()); +// } +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.insert(productRepairRecords); Task task = taskService.selectById(productRepairRecords.getTaskid()); if ("1".equals(productRepairRecords.getIschange()) && null != task && @@ -110,6 +148,7 @@ if (task.getRemaincount() < 1) return ResponseData.error("备货任务单已无设备"); task.setRemaincount(task.getRemaincount() - 1); + taskService.insertOrUpdate(task); } return ResponseData.success(); } @@ -140,16 +179,30 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.updateById(productRepairRecords); return ResponseData.success(); } + /** * 设备履历详情 */ @@ -170,7 +223,7 @@ String devcode = httpServletRequest.getParameter("devcode"); String begTime = httpServletRequest.getParameter("begTime"); String endTime = httpServletRequest.getParameter("endTime"); - List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + List list = productRepairRecordsService.reportExport(devcode, begTime, endTime); FileInputStream fileInputStream = new FileInputStream(downloadPath + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); try { @@ -189,4 +242,72 @@ fileInputStream.close(); } } + + + /** + * 批量导入履历表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入履历信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("返修时间", "returntimeFmt"); + mapper.put("故障现象", "deviceProblem"); + mapper.put("检查人员", "checkName"); + mapper.put("故障定位", "deviceProblemLocation"); + mapper.put("原因分析", "analysis"); + mapper.put("归零措施", "zeroMeasures"); + mapper.put("维修人员", "repairName"); + mapper.put("完成时间", "finishtimeFmt"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductRepairRecords.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductRepairRecords repairRecords = row.getResult(); + + if (!ToolUtil.isAllEmpty(repairRecords.getDevcode(), repairRecords.getReturntimeFmt())) { + results.add(repairRecords); + } + } + } else { + row.shutdown(); + } + }); + productRepairRecordsService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入履历信息失败"); + } + return ResponseData.success(); + } + + + @RequestMapping(value = "/getPhoto") + 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)); + } + if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { + + 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)); + } + + } + } 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 15b9eb8..b1162d7 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 @@ -15,4 +15,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); + void 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 9c37938..4095754 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 @@ -8,13 +8,16 @@ import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductRepairRecords; import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IAccountService; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.sql.Timestamp; import java.util.List; /** @@ -34,6 +37,8 @@ private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Autowired + private IAccountService accountService; @Override public List reportExport(String devcode, String begTime, String endTime) { @@ -58,4 +63,25 @@ } return productRepairRecordsList; } + + + + @Override + public void importContract(List productRepairRecordsList) { + productRepairRecordsList.forEach(repairRecords -> { + if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + Account user = accountService.findUserByName(repairRecords.getCheckName()); + repairRecords.setCheckmanId(user!=null?user.getId():null); + } + if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + Account user = accountService.findUserByName(repairRecords.getRepairName()); + 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); + }); + this.insertBatch(productRepairRecordsList); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java index 5ee1e20..5d75451 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -11,18 +11,15 @@ import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ContractDict; -import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.model.Account; -import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.service.IAccountService; +import com.casic.missiles.modular.system.service.IContractService; import org.hswebframework.expands.office.excel.ExcelIO; 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.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -72,12 +69,13 @@ */ @RequestMapping(value = "/pageList") @ResponseBody - public Object listPage(String keyword1,String keyword2,String keyword3) { + public Object listPage(String keyword1, String keyword2, String keyword3) { Page page = new PageFactory().defaultPage(); - List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + List contractList = contractService.selectPageList(page, keyword1, keyword2, keyword3); page.setRecords(contractList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增 */ @@ -87,10 +85,10 @@ public Object add(Contract contract) { //合同编号一样,则覆盖 EntityWrapper contractEntityWrapper = new EntityWrapper<>(); - contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractEntityWrapper.eq("contract_number", contract.getContractNumber()); contractService.delete(contractEntityWrapper); - Account user=userService.findUserByName(contract.getPrincipal()); - contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.insert(contract); return ResponseData.success(); } @@ -122,15 +120,15 @@ @ResponseBody @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) public Object baseUpdate(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setContractNumber(contract.getContractNumber()); contract1.setContractName(contract.getContractName()); contract1.setContractAmount(contract.getContractAmount()); contract1.setContractContent(contract.getContractContent()); contract1.setContractFactory(contract.getContractFactory()); contract1.setPrincipal(contract.getPrincipal()); - Account user=userService.findUserByName(contract.getPrincipal()); - contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.updateById(contract1); return ResponseData.success(); } @@ -142,13 +140,14 @@ @ResponseBody @BussinessLog(value = "修改内网流程信息") public Object update(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setExternalCheckApply(contract.getExternalCheckApply()); contract1.setExternalContractApply(contract.getExternalContractApply()); contract1.setExternalProjectApply(contract.getExternalProjectApply()); contractService.updateById(contract1); return ResponseData.success(); } + /** * 导出合同列表 */ @@ -160,7 +159,7 @@ String keyword3 = httpServletRequest.getParameter("keyword3"); List list = contractService.reportExport(keyword1, keyword2, keyword3); FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + (list != null && list.size() > 0 ? "contractList.xlsx" : "contentNull.xlsx")); try { httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); @@ -223,13 +222,14 @@ /** * 根据id查详情 + * * @param id * @return */ @RequestMapping(value = "/selectById") @ResponseBody public Object detail(Long id) { - return ResponseData.success(200, + return ResponseData.success(200, "查询详情成功", contractService.selectById(id)); } @@ -245,4 +245,5 @@ List contractList = contractService.selectList(entityWrapper); return ResponseData.success(200, "", contractList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 509ad80..844ace2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -7,8 +7,12 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.service.IProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -16,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -33,6 +39,8 @@ @Autowired private IProjectService projectService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; /** * 获取项目管理列表 @@ -111,4 +119,25 @@ List projects = projectService.selectList(entityWrapper); return ResponseData.success(200, "", projects); } + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getDevTypes") + @ResponseBody + public Object getDevTypes(Long projectId) { + List deviceTypeDtos = new ArrayList<>(); + Project project = projectService.selectById(projectId); + if (ToolUtil.isNotEmpty(project) && ToolUtil.isNotEmpty(project.getDevTpeIds())) { + List productDeviceTypes = productDeviceTypeService. + selectBatchIds(Arrays.asList(project.getDevTpeIds().split(","))); + productDeviceTypes.forEach(productDeviceType -> { + DeviceTypeDto deviceTypeDto = new DeviceTypeDto(); + deviceTypeDto.setId(productDeviceType.getId()); + deviceTypeDto.setProductName(productDeviceType.getProductName()); + deviceTypeDtos.add(deviceTypeDto); + }); + } + return ResponseData.success(200, "", deviceTypeDtos); + } } 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 b57ce8e..0ca769c 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 @@ -21,7 +21,10 @@ @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); List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, 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 4a8d514..3426519 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 @@ -34,6 +34,8 @@ 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 as descn FROM product_device pd @@ -45,6 +47,8 @@ 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 @@ -55,11 +59,19 @@ 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 @@ -105,6 +117,7 @@ LEFT JOIN product_task pt ON pt.`id`=pb.`task_id` LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 @@ -113,5 +126,6 @@ LEFT JOIN product_device_type pdt ON pd.`devtype_id`=pdt.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml index 3efe420..537a52e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -34,6 +34,7 @@ pt.`devmode_id` AS devmodeId, pt.`devcount`, pt.`isstored`, + pt.`status`, pt.`isSend`, pc.`contract_number` AS contractNumber, pt.`devtype_id` AS devtypeId, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java index 43328de..85b7370 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -17,6 +17,8 @@ private String cardType; private String operator; private String descn ; + private String contractorNumber ; + private String productModel; public Long getId() { return id; @@ -145,4 +147,20 @@ public void setDescn(String descn) { this.descn = descn; } + + public String getContractorNumber() { + return contractorNumber; + } + + public void setContractorNumber(String contractorNumber) { + this.contractorNumber = contractorNumber; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java index 81516b7..63ba43e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -32,6 +32,7 @@ private Long devtypeId; @TableField("task_id") private Long taskId; + private Long remaincount; private Date createtime; @@ -91,6 +92,14 @@ this.devtypeId = devtypeId; } + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java index 893a1ed..8663e63 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -52,6 +52,7 @@ private String netFlow; @TableField("deptid") private String deptid; + private String isstored; public String getContractNumber() { return contractNumber; @@ -165,6 +166,14 @@ this.deptid = deptid; } + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java index eb0f678..c7ba0b6 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -91,6 +91,12 @@ private Long taskid; + private String photopath1; + + private String photopath2; + + private String photopath3; + @TableField(exist = false) private String returntimeFmt; @@ -105,6 +111,8 @@ @TableField(exist = false) private String checkName; + @TableField(exist = false) + private String repairName; public Long getId() { return id; @@ -250,7 +258,6 @@ this.zeroMeasures = zeroMeasures; } - public String getReturntimeFmt() { return returntimeFmt; } @@ -267,6 +274,38 @@ this.finishtimeFmt = finishtimeFmt; } + public String getPhotopath1() { + return photopath1; + } + + public void setPhotopath1(String photopath1) { + this.photopath1 = photopath1; + } + + public String getPhotopath2() { + return photopath2; + } + + public void setPhotopath2(String photopath2) { + this.photopath2 = photopath2; + } + + public String getPhotopath3() { + return photopath3; + } + + public void setPhotopath3(String photopath3) { + this.photopath3 = photopath3; + } + + public String getRepairName() { + return repairName; + } + + public void setRepairName(String repairName) { + this.repairName = repairName; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java index 00cbc92..89face9 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -29,6 +29,7 @@ @TableField("project_manager") private String projectManager; private String descn; + private String devTpeIds; @TableField("createtime") private Date createtime; @@ -81,6 +82,14 @@ this.createtime = createtime; } + public String getDevTpeIds() { + return devTpeIds; + } + + public void setDevTpeIds(String devTpeIds) { + this.devTpeIds = devTpeIds; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java index 4b610c4..c9f74d1 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -34,6 +34,7 @@ private Date deliveryTime; private String demand; private String isstored; + private String status; private String isSend; private String cardType; private String operator; @@ -205,6 +206,15 @@ this.operator = operator; } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java index 7497dc7..5a08962 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -1,11 +1,16 @@ package com.casic.missiles.modular.system.util; +import org.springframework.web.multipart.MultipartFile; + import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.UUID; public class FileUtil { public static File createFile(String path) throws IOException { @@ -56,4 +61,22 @@ return fileName; } + + public static String saveFile(MultipartFile file,String filePath) throws IOException { + if (!file.isEmpty()) { + String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java index 838dcf7..d6180a4 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -8,6 +8,7 @@ import com.casic.missiles.modular.system.model.Batch; import com.casic.missiles.modular.system.model.Task; import com.casic.missiles.modular.task.service.IBatchService; +import com.casic.missiles.modular.util.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; @@ -106,6 +107,7 @@ public Object getBatchNumber(Long devtypeId) { EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.ge("createtime", DateUtils.getCurrYearFirst()); entityWrapper.orderBy("id", false); Batch batch = batchService.selectOne(entityWrapper); return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 2aa214e..2e07102 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 @@ -33,8 +33,13 @@ private static String[] sendArr = {"生产中", "已发货", "待交付"}; @Override - public List selectPageList(Page page, String projectName, Long devTypeId, String devcode, String pm) { - List deviceDtoList = this.baseMapper.selectPageList(page, projectName, devTypeId, devcode, pm); + public List selectPageList(Page page, String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = + this.baseMapper.selectPageList(page, 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])); @@ -42,37 +47,34 @@ return deviceDtoList; } -// @Override -// public void importDevice(List results) { -// List deviceList = new ArrayList<>(); -// for (Device device : results) { -// EntityWrapper wrapper = new EntityWrapper<>(); -// wrapper.eq("devcode", device.getDevcode()); -// List deviceList1 = this.baseMapper.selectList(wrapper); -// for (Device device1 : deviceList1) { -// device1.setIccid(device.getIccid()); -// device1.setImei(device.getImei()); -// device1.setIsSend(device.getIsSend()); -// device1.setDescription(device.getDescription()); -// deviceList.add(device1); -// } -// } -// if (deviceList != null && deviceList.size() > 0) { -// this.insertOrUpdateBatch(deviceList); -// } -// taskService.getUpdateList(); -// } - - - - - @Override public void importDevice(List results) { - this.insertBatch(results); + List deviceList = new ArrayList<>(); + for (Device device : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("devcode", device.getDevcode()); + List deviceList1 = this.baseMapper.selectList(wrapper); + for (Device device1 : deviceList1) { + device1.setIccid(device.getIccid()); + device1.setImei(device.getImei()); + device1.setIsSend(device.getIsSend()); + device1.setDescription(device.getDescription()); + deviceList.add(device1); + } + } + if (deviceList != null && deviceList.size() > 0) { + this.insertOrUpdateBatch(deviceList); + } + taskService.getUpdateList(); } +// @Override +// public void importDevice(List results) { +// this.insertBatch(results); +// } + + @Override public List reportExport(String projectName, Long devTypeId, @@ -96,4 +98,11 @@ public String getDevTypeBydevcode(String devcode) { return this.baseMapper.getDevTypeBydevcode(devcode); } + + @Override + public Device getDeviceByCode(String devcode){ + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.eq("devcode",devcode); + return this.selectOne(deviceEntityWrapper); + } } 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 7cb1f60..1ce57de 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 @@ -3,31 +3,40 @@ 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.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; 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.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.device.service.impl.DeviceServiceImpl; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; -import com.casic.missiles.modular.system.model.*; -import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.util.FileUtil; import com.casic.missiles.modular.task.service.ITaskService; import org.hswebframework.expands.office.excel.ExcelIO; 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.PathVariable; -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.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,13 +57,17 @@ @Autowired private ITaskService taskService; @Autowired - private IProductDeviceTypeService productDeviceTypeService; - @Autowired private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Resource + private ICommonFileService commonFileService; + @Value("${casic.file-download-path}") private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; + /** * 获取设备履历列表 */ @@ -86,8 +99,8 @@ 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():""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); } return new SuccessResponseData(super.packForBT(page)); } @@ -98,11 +111,36 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { + if (null == deviceService.getDeviceByCode(productRepairRecords.getDevcode())) { + return ResponseData.error(400, "设备编号不存在"); + } productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath1())){ +// productRepairRecords.setPhotopath1(productRepairRecords.getPhotopath1()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath2())){ +// productRepairRecords.setPhotopath2(productRepairRecords.getPhotopath2()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath3())){ +// productRepairRecords.setPhotopath3(productRepairRecords.getPhotopath3()); +// } +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.insert(productRepairRecords); Task task = taskService.selectById(productRepairRecords.getTaskid()); if ("1".equals(productRepairRecords.getIschange()) && null != task && @@ -110,6 +148,7 @@ if (task.getRemaincount() < 1) return ResponseData.error("备货任务单已无设备"); task.setRemaincount(task.getRemaincount() - 1); + taskService.insertOrUpdate(task); } return ResponseData.success(); } @@ -140,16 +179,30 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.updateById(productRepairRecords); return ResponseData.success(); } + /** * 设备履历详情 */ @@ -170,7 +223,7 @@ String devcode = httpServletRequest.getParameter("devcode"); String begTime = httpServletRequest.getParameter("begTime"); String endTime = httpServletRequest.getParameter("endTime"); - List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + List list = productRepairRecordsService.reportExport(devcode, begTime, endTime); FileInputStream fileInputStream = new FileInputStream(downloadPath + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); try { @@ -189,4 +242,72 @@ fileInputStream.close(); } } + + + /** + * 批量导入履历表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入履历信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("返修时间", "returntimeFmt"); + mapper.put("故障现象", "deviceProblem"); + mapper.put("检查人员", "checkName"); + mapper.put("故障定位", "deviceProblemLocation"); + mapper.put("原因分析", "analysis"); + mapper.put("归零措施", "zeroMeasures"); + mapper.put("维修人员", "repairName"); + mapper.put("完成时间", "finishtimeFmt"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductRepairRecords.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductRepairRecords repairRecords = row.getResult(); + + if (!ToolUtil.isAllEmpty(repairRecords.getDevcode(), repairRecords.getReturntimeFmt())) { + results.add(repairRecords); + } + } + } else { + row.shutdown(); + } + }); + productRepairRecordsService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入履历信息失败"); + } + return ResponseData.success(); + } + + + @RequestMapping(value = "/getPhoto") + 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)); + } + if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { + + 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)); + } + + } + } 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 15b9eb8..b1162d7 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 @@ -15,4 +15,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); + void 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 9c37938..4095754 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 @@ -8,13 +8,16 @@ import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductRepairRecords; import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IAccountService; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.sql.Timestamp; import java.util.List; /** @@ -34,6 +37,8 @@ private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Autowired + private IAccountService accountService; @Override public List reportExport(String devcode, String begTime, String endTime) { @@ -58,4 +63,25 @@ } return productRepairRecordsList; } + + + + @Override + public void importContract(List productRepairRecordsList) { + productRepairRecordsList.forEach(repairRecords -> { + if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + Account user = accountService.findUserByName(repairRecords.getCheckName()); + repairRecords.setCheckmanId(user!=null?user.getId():null); + } + if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + Account user = accountService.findUserByName(repairRecords.getRepairName()); + 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); + }); + this.insertBatch(productRepairRecordsList); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java index 5ee1e20..5d75451 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -11,18 +11,15 @@ import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ContractDict; -import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.model.Account; -import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.service.IAccountService; +import com.casic.missiles.modular.system.service.IContractService; import org.hswebframework.expands.office.excel.ExcelIO; 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.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -72,12 +69,13 @@ */ @RequestMapping(value = "/pageList") @ResponseBody - public Object listPage(String keyword1,String keyword2,String keyword3) { + public Object listPage(String keyword1, String keyword2, String keyword3) { Page page = new PageFactory().defaultPage(); - List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + List contractList = contractService.selectPageList(page, keyword1, keyword2, keyword3); page.setRecords(contractList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增 */ @@ -87,10 +85,10 @@ public Object add(Contract contract) { //合同编号一样,则覆盖 EntityWrapper contractEntityWrapper = new EntityWrapper<>(); - contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractEntityWrapper.eq("contract_number", contract.getContractNumber()); contractService.delete(contractEntityWrapper); - Account user=userService.findUserByName(contract.getPrincipal()); - contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.insert(contract); return ResponseData.success(); } @@ -122,15 +120,15 @@ @ResponseBody @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) public Object baseUpdate(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setContractNumber(contract.getContractNumber()); contract1.setContractName(contract.getContractName()); contract1.setContractAmount(contract.getContractAmount()); contract1.setContractContent(contract.getContractContent()); contract1.setContractFactory(contract.getContractFactory()); contract1.setPrincipal(contract.getPrincipal()); - Account user=userService.findUserByName(contract.getPrincipal()); - contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.updateById(contract1); return ResponseData.success(); } @@ -142,13 +140,14 @@ @ResponseBody @BussinessLog(value = "修改内网流程信息") public Object update(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setExternalCheckApply(contract.getExternalCheckApply()); contract1.setExternalContractApply(contract.getExternalContractApply()); contract1.setExternalProjectApply(contract.getExternalProjectApply()); contractService.updateById(contract1); return ResponseData.success(); } + /** * 导出合同列表 */ @@ -160,7 +159,7 @@ String keyword3 = httpServletRequest.getParameter("keyword3"); List list = contractService.reportExport(keyword1, keyword2, keyword3); FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + (list != null && list.size() > 0 ? "contractList.xlsx" : "contentNull.xlsx")); try { httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); @@ -223,13 +222,14 @@ /** * 根据id查详情 + * * @param id * @return */ @RequestMapping(value = "/selectById") @ResponseBody public Object detail(Long id) { - return ResponseData.success(200, + return ResponseData.success(200, "查询详情成功", contractService.selectById(id)); } @@ -245,4 +245,5 @@ List contractList = contractService.selectList(entityWrapper); return ResponseData.success(200, "", contractList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 509ad80..844ace2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -7,8 +7,12 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.service.IProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -16,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -33,6 +39,8 @@ @Autowired private IProjectService projectService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; /** * 获取项目管理列表 @@ -111,4 +119,25 @@ List projects = projectService.selectList(entityWrapper); return ResponseData.success(200, "", projects); } + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getDevTypes") + @ResponseBody + public Object getDevTypes(Long projectId) { + List deviceTypeDtos = new ArrayList<>(); + Project project = projectService.selectById(projectId); + if (ToolUtil.isNotEmpty(project) && ToolUtil.isNotEmpty(project.getDevTpeIds())) { + List productDeviceTypes = productDeviceTypeService. + selectBatchIds(Arrays.asList(project.getDevTpeIds().split(","))); + productDeviceTypes.forEach(productDeviceType -> { + DeviceTypeDto deviceTypeDto = new DeviceTypeDto(); + deviceTypeDto.setId(productDeviceType.getId()); + deviceTypeDto.setProductName(productDeviceType.getProductName()); + deviceTypeDtos.add(deviceTypeDto); + }); + } + return ResponseData.success(200, "", deviceTypeDtos); + } } 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 b57ce8e..0ca769c 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 @@ -21,7 +21,10 @@ @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); List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, 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 4a8d514..3426519 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 @@ -34,6 +34,8 @@ 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 as descn FROM product_device pd @@ -45,6 +47,8 @@ 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 @@ -55,11 +59,19 @@ 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 @@ -105,6 +117,7 @@ LEFT JOIN product_task pt ON pt.`id`=pb.`task_id` LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 @@ -113,5 +126,6 @@ LEFT JOIN product_device_type pdt ON pd.`devtype_id`=pdt.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml index 3efe420..537a52e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -34,6 +34,7 @@ pt.`devmode_id` AS devmodeId, pt.`devcount`, pt.`isstored`, + pt.`status`, pt.`isSend`, pc.`contract_number` AS contractNumber, pt.`devtype_id` AS devtypeId, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java index 43328de..85b7370 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -17,6 +17,8 @@ private String cardType; private String operator; private String descn ; + private String contractorNumber ; + private String productModel; public Long getId() { return id; @@ -145,4 +147,20 @@ public void setDescn(String descn) { this.descn = descn; } + + public String getContractorNumber() { + return contractorNumber; + } + + public void setContractorNumber(String contractorNumber) { + this.contractorNumber = contractorNumber; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java index 81516b7..63ba43e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -32,6 +32,7 @@ private Long devtypeId; @TableField("task_id") private Long taskId; + private Long remaincount; private Date createtime; @@ -91,6 +92,14 @@ this.devtypeId = devtypeId; } + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java index 893a1ed..8663e63 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -52,6 +52,7 @@ private String netFlow; @TableField("deptid") private String deptid; + private String isstored; public String getContractNumber() { return contractNumber; @@ -165,6 +166,14 @@ this.deptid = deptid; } + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java index eb0f678..c7ba0b6 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -91,6 +91,12 @@ private Long taskid; + private String photopath1; + + private String photopath2; + + private String photopath3; + @TableField(exist = false) private String returntimeFmt; @@ -105,6 +111,8 @@ @TableField(exist = false) private String checkName; + @TableField(exist = false) + private String repairName; public Long getId() { return id; @@ -250,7 +258,6 @@ this.zeroMeasures = zeroMeasures; } - public String getReturntimeFmt() { return returntimeFmt; } @@ -267,6 +274,38 @@ this.finishtimeFmt = finishtimeFmt; } + public String getPhotopath1() { + return photopath1; + } + + public void setPhotopath1(String photopath1) { + this.photopath1 = photopath1; + } + + public String getPhotopath2() { + return photopath2; + } + + public void setPhotopath2(String photopath2) { + this.photopath2 = photopath2; + } + + public String getPhotopath3() { + return photopath3; + } + + public void setPhotopath3(String photopath3) { + this.photopath3 = photopath3; + } + + public String getRepairName() { + return repairName; + } + + public void setRepairName(String repairName) { + this.repairName = repairName; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java index 00cbc92..89face9 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -29,6 +29,7 @@ @TableField("project_manager") private String projectManager; private String descn; + private String devTpeIds; @TableField("createtime") private Date createtime; @@ -81,6 +82,14 @@ this.createtime = createtime; } + public String getDevTpeIds() { + return devTpeIds; + } + + public void setDevTpeIds(String devTpeIds) { + this.devTpeIds = devTpeIds; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java index 4b610c4..c9f74d1 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -34,6 +34,7 @@ private Date deliveryTime; private String demand; private String isstored; + private String status; private String isSend; private String cardType; private String operator; @@ -205,6 +206,15 @@ this.operator = operator; } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java index 7497dc7..5a08962 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -1,11 +1,16 @@ package com.casic.missiles.modular.system.util; +import org.springframework.web.multipart.MultipartFile; + import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.UUID; public class FileUtil { public static File createFile(String path) throws IOException { @@ -56,4 +61,22 @@ return fileName; } + + public static String saveFile(MultipartFile file,String filePath) throws IOException { + if (!file.isEmpty()) { + String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java index 838dcf7..d6180a4 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -8,6 +8,7 @@ import com.casic.missiles.modular.system.model.Batch; import com.casic.missiles.modular.system.model.Task; import com.casic.missiles.modular.task.service.IBatchService; +import com.casic.missiles.modular.util.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; @@ -106,6 +107,7 @@ public Object getBatchNumber(Long devtypeId) { EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.ge("createtime", DateUtils.getCurrYearFirst()); entityWrapper.orderBy("id", false); Batch batch = batchService.selectOne(entityWrapper); return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); 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 e3e3348..5d82777 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 @@ -91,8 +91,9 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String taskId) { - taskService.deleteById(taskId); + public Object delete(@RequestParam Long taskId) { +// taskService.deleteById(taskId); + taskService.deleteTask(taskId); return ResponseData.success(); } 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 2aa214e..2e07102 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 @@ -33,8 +33,13 @@ private static String[] sendArr = {"生产中", "已发货", "待交付"}; @Override - public List selectPageList(Page page, String projectName, Long devTypeId, String devcode, String pm) { - List deviceDtoList = this.baseMapper.selectPageList(page, projectName, devTypeId, devcode, pm); + public List selectPageList(Page page, String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = + this.baseMapper.selectPageList(page, 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])); @@ -42,37 +47,34 @@ return deviceDtoList; } -// @Override -// public void importDevice(List results) { -// List deviceList = new ArrayList<>(); -// for (Device device : results) { -// EntityWrapper wrapper = new EntityWrapper<>(); -// wrapper.eq("devcode", device.getDevcode()); -// List deviceList1 = this.baseMapper.selectList(wrapper); -// for (Device device1 : deviceList1) { -// device1.setIccid(device.getIccid()); -// device1.setImei(device.getImei()); -// device1.setIsSend(device.getIsSend()); -// device1.setDescription(device.getDescription()); -// deviceList.add(device1); -// } -// } -// if (deviceList != null && deviceList.size() > 0) { -// this.insertOrUpdateBatch(deviceList); -// } -// taskService.getUpdateList(); -// } - - - - - @Override public void importDevice(List results) { - this.insertBatch(results); + List deviceList = new ArrayList<>(); + for (Device device : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("devcode", device.getDevcode()); + List deviceList1 = this.baseMapper.selectList(wrapper); + for (Device device1 : deviceList1) { + device1.setIccid(device.getIccid()); + device1.setImei(device.getImei()); + device1.setIsSend(device.getIsSend()); + device1.setDescription(device.getDescription()); + deviceList.add(device1); + } + } + if (deviceList != null && deviceList.size() > 0) { + this.insertOrUpdateBatch(deviceList); + } + taskService.getUpdateList(); } +// @Override +// public void importDevice(List results) { +// this.insertBatch(results); +// } + + @Override public List reportExport(String projectName, Long devTypeId, @@ -96,4 +98,11 @@ public String getDevTypeBydevcode(String devcode) { return this.baseMapper.getDevTypeBydevcode(devcode); } + + @Override + public Device getDeviceByCode(String devcode){ + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.eq("devcode",devcode); + return this.selectOne(deviceEntityWrapper); + } } 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 7cb1f60..1ce57de 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 @@ -3,31 +3,40 @@ 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.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; 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.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.device.service.impl.DeviceServiceImpl; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; -import com.casic.missiles.modular.system.model.*; -import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.util.FileUtil; import com.casic.missiles.modular.task.service.ITaskService; import org.hswebframework.expands.office.excel.ExcelIO; 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.PathVariable; -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.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,13 +57,17 @@ @Autowired private ITaskService taskService; @Autowired - private IProductDeviceTypeService productDeviceTypeService; - @Autowired private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Resource + private ICommonFileService commonFileService; + @Value("${casic.file-download-path}") private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; + /** * 获取设备履历列表 */ @@ -86,8 +99,8 @@ 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():""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); } return new SuccessResponseData(super.packForBT(page)); } @@ -98,11 +111,36 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { + if (null == deviceService.getDeviceByCode(productRepairRecords.getDevcode())) { + return ResponseData.error(400, "设备编号不存在"); + } productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath1())){ +// productRepairRecords.setPhotopath1(productRepairRecords.getPhotopath1()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath2())){ +// productRepairRecords.setPhotopath2(productRepairRecords.getPhotopath2()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath3())){ +// productRepairRecords.setPhotopath3(productRepairRecords.getPhotopath3()); +// } +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.insert(productRepairRecords); Task task = taskService.selectById(productRepairRecords.getTaskid()); if ("1".equals(productRepairRecords.getIschange()) && null != task && @@ -110,6 +148,7 @@ if (task.getRemaincount() < 1) return ResponseData.error("备货任务单已无设备"); task.setRemaincount(task.getRemaincount() - 1); + taskService.insertOrUpdate(task); } return ResponseData.success(); } @@ -140,16 +179,30 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.updateById(productRepairRecords); return ResponseData.success(); } + /** * 设备履历详情 */ @@ -170,7 +223,7 @@ String devcode = httpServletRequest.getParameter("devcode"); String begTime = httpServletRequest.getParameter("begTime"); String endTime = httpServletRequest.getParameter("endTime"); - List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + List list = productRepairRecordsService.reportExport(devcode, begTime, endTime); FileInputStream fileInputStream = new FileInputStream(downloadPath + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); try { @@ -189,4 +242,72 @@ fileInputStream.close(); } } + + + /** + * 批量导入履历表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入履历信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("返修时间", "returntimeFmt"); + mapper.put("故障现象", "deviceProblem"); + mapper.put("检查人员", "checkName"); + mapper.put("故障定位", "deviceProblemLocation"); + mapper.put("原因分析", "analysis"); + mapper.put("归零措施", "zeroMeasures"); + mapper.put("维修人员", "repairName"); + mapper.put("完成时间", "finishtimeFmt"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductRepairRecords.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductRepairRecords repairRecords = row.getResult(); + + if (!ToolUtil.isAllEmpty(repairRecords.getDevcode(), repairRecords.getReturntimeFmt())) { + results.add(repairRecords); + } + } + } else { + row.shutdown(); + } + }); + productRepairRecordsService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入履历信息失败"); + } + return ResponseData.success(); + } + + + @RequestMapping(value = "/getPhoto") + 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)); + } + if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { + + 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)); + } + + } + } 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 15b9eb8..b1162d7 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 @@ -15,4 +15,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); + void 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 9c37938..4095754 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 @@ -8,13 +8,16 @@ import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductRepairRecords; import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IAccountService; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.sql.Timestamp; import java.util.List; /** @@ -34,6 +37,8 @@ private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Autowired + private IAccountService accountService; @Override public List reportExport(String devcode, String begTime, String endTime) { @@ -58,4 +63,25 @@ } return productRepairRecordsList; } + + + + @Override + public void importContract(List productRepairRecordsList) { + productRepairRecordsList.forEach(repairRecords -> { + if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + Account user = accountService.findUserByName(repairRecords.getCheckName()); + repairRecords.setCheckmanId(user!=null?user.getId():null); + } + if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + Account user = accountService.findUserByName(repairRecords.getRepairName()); + 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); + }); + this.insertBatch(productRepairRecordsList); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java index 5ee1e20..5d75451 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -11,18 +11,15 @@ import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ContractDict; -import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.model.Account; -import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.service.IAccountService; +import com.casic.missiles.modular.system.service.IContractService; import org.hswebframework.expands.office.excel.ExcelIO; 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.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -72,12 +69,13 @@ */ @RequestMapping(value = "/pageList") @ResponseBody - public Object listPage(String keyword1,String keyword2,String keyword3) { + public Object listPage(String keyword1, String keyword2, String keyword3) { Page page = new PageFactory().defaultPage(); - List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + List contractList = contractService.selectPageList(page, keyword1, keyword2, keyword3); page.setRecords(contractList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增 */ @@ -87,10 +85,10 @@ public Object add(Contract contract) { //合同编号一样,则覆盖 EntityWrapper contractEntityWrapper = new EntityWrapper<>(); - contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractEntityWrapper.eq("contract_number", contract.getContractNumber()); contractService.delete(contractEntityWrapper); - Account user=userService.findUserByName(contract.getPrincipal()); - contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.insert(contract); return ResponseData.success(); } @@ -122,15 +120,15 @@ @ResponseBody @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) public Object baseUpdate(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setContractNumber(contract.getContractNumber()); contract1.setContractName(contract.getContractName()); contract1.setContractAmount(contract.getContractAmount()); contract1.setContractContent(contract.getContractContent()); contract1.setContractFactory(contract.getContractFactory()); contract1.setPrincipal(contract.getPrincipal()); - Account user=userService.findUserByName(contract.getPrincipal()); - contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.updateById(contract1); return ResponseData.success(); } @@ -142,13 +140,14 @@ @ResponseBody @BussinessLog(value = "修改内网流程信息") public Object update(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setExternalCheckApply(contract.getExternalCheckApply()); contract1.setExternalContractApply(contract.getExternalContractApply()); contract1.setExternalProjectApply(contract.getExternalProjectApply()); contractService.updateById(contract1); return ResponseData.success(); } + /** * 导出合同列表 */ @@ -160,7 +159,7 @@ String keyword3 = httpServletRequest.getParameter("keyword3"); List list = contractService.reportExport(keyword1, keyword2, keyword3); FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + (list != null && list.size() > 0 ? "contractList.xlsx" : "contentNull.xlsx")); try { httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); @@ -223,13 +222,14 @@ /** * 根据id查详情 + * * @param id * @return */ @RequestMapping(value = "/selectById") @ResponseBody public Object detail(Long id) { - return ResponseData.success(200, + return ResponseData.success(200, "查询详情成功", contractService.selectById(id)); } @@ -245,4 +245,5 @@ List contractList = contractService.selectList(entityWrapper); return ResponseData.success(200, "", contractList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 509ad80..844ace2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -7,8 +7,12 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.service.IProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -16,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -33,6 +39,8 @@ @Autowired private IProjectService projectService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; /** * 获取项目管理列表 @@ -111,4 +119,25 @@ List projects = projectService.selectList(entityWrapper); return ResponseData.success(200, "", projects); } + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getDevTypes") + @ResponseBody + public Object getDevTypes(Long projectId) { + List deviceTypeDtos = new ArrayList<>(); + Project project = projectService.selectById(projectId); + if (ToolUtil.isNotEmpty(project) && ToolUtil.isNotEmpty(project.getDevTpeIds())) { + List productDeviceTypes = productDeviceTypeService. + selectBatchIds(Arrays.asList(project.getDevTpeIds().split(","))); + productDeviceTypes.forEach(productDeviceType -> { + DeviceTypeDto deviceTypeDto = new DeviceTypeDto(); + deviceTypeDto.setId(productDeviceType.getId()); + deviceTypeDto.setProductName(productDeviceType.getProductName()); + deviceTypeDtos.add(deviceTypeDto); + }); + } + return ResponseData.success(200, "", deviceTypeDtos); + } } 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 b57ce8e..0ca769c 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 @@ -21,7 +21,10 @@ @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); List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, 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 4a8d514..3426519 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 @@ -34,6 +34,8 @@ 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 as descn FROM product_device pd @@ -45,6 +47,8 @@ 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 @@ -55,11 +59,19 @@ 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 @@ -105,6 +117,7 @@ LEFT JOIN product_task pt ON pt.`id`=pb.`task_id` LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 @@ -113,5 +126,6 @@ LEFT JOIN product_device_type pdt ON pd.`devtype_id`=pdt.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml index 3efe420..537a52e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -34,6 +34,7 @@ pt.`devmode_id` AS devmodeId, pt.`devcount`, pt.`isstored`, + pt.`status`, pt.`isSend`, pc.`contract_number` AS contractNumber, pt.`devtype_id` AS devtypeId, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java index 43328de..85b7370 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -17,6 +17,8 @@ private String cardType; private String operator; private String descn ; + private String contractorNumber ; + private String productModel; public Long getId() { return id; @@ -145,4 +147,20 @@ public void setDescn(String descn) { this.descn = descn; } + + public String getContractorNumber() { + return contractorNumber; + } + + public void setContractorNumber(String contractorNumber) { + this.contractorNumber = contractorNumber; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java index 81516b7..63ba43e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -32,6 +32,7 @@ private Long devtypeId; @TableField("task_id") private Long taskId; + private Long remaincount; private Date createtime; @@ -91,6 +92,14 @@ this.devtypeId = devtypeId; } + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java index 893a1ed..8663e63 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -52,6 +52,7 @@ private String netFlow; @TableField("deptid") private String deptid; + private String isstored; public String getContractNumber() { return contractNumber; @@ -165,6 +166,14 @@ this.deptid = deptid; } + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java index eb0f678..c7ba0b6 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -91,6 +91,12 @@ private Long taskid; + private String photopath1; + + private String photopath2; + + private String photopath3; + @TableField(exist = false) private String returntimeFmt; @@ -105,6 +111,8 @@ @TableField(exist = false) private String checkName; + @TableField(exist = false) + private String repairName; public Long getId() { return id; @@ -250,7 +258,6 @@ this.zeroMeasures = zeroMeasures; } - public String getReturntimeFmt() { return returntimeFmt; } @@ -267,6 +274,38 @@ this.finishtimeFmt = finishtimeFmt; } + public String getPhotopath1() { + return photopath1; + } + + public void setPhotopath1(String photopath1) { + this.photopath1 = photopath1; + } + + public String getPhotopath2() { + return photopath2; + } + + public void setPhotopath2(String photopath2) { + this.photopath2 = photopath2; + } + + public String getPhotopath3() { + return photopath3; + } + + public void setPhotopath3(String photopath3) { + this.photopath3 = photopath3; + } + + public String getRepairName() { + return repairName; + } + + public void setRepairName(String repairName) { + this.repairName = repairName; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java index 00cbc92..89face9 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -29,6 +29,7 @@ @TableField("project_manager") private String projectManager; private String descn; + private String devTpeIds; @TableField("createtime") private Date createtime; @@ -81,6 +82,14 @@ this.createtime = createtime; } + public String getDevTpeIds() { + return devTpeIds; + } + + public void setDevTpeIds(String devTpeIds) { + this.devTpeIds = devTpeIds; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java index 4b610c4..c9f74d1 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -34,6 +34,7 @@ private Date deliveryTime; private String demand; private String isstored; + private String status; private String isSend; private String cardType; private String operator; @@ -205,6 +206,15 @@ this.operator = operator; } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java index 7497dc7..5a08962 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -1,11 +1,16 @@ package com.casic.missiles.modular.system.util; +import org.springframework.web.multipart.MultipartFile; + import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.UUID; public class FileUtil { public static File createFile(String path) throws IOException { @@ -56,4 +61,22 @@ return fileName; } + + public static String saveFile(MultipartFile file,String filePath) throws IOException { + if (!file.isEmpty()) { + String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java index 838dcf7..d6180a4 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -8,6 +8,7 @@ import com.casic.missiles.modular.system.model.Batch; import com.casic.missiles.modular.system.model.Task; import com.casic.missiles.modular.task.service.IBatchService; +import com.casic.missiles.modular.util.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; @@ -106,6 +107,7 @@ public Object getBatchNumber(Long devtypeId) { EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.ge("createtime", DateUtils.getCurrYearFirst()); entityWrapper.orderBy("id", false); Batch batch = batchService.selectOne(entityWrapper); return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); 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 e3e3348..5d82777 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 @@ -91,8 +91,9 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String taskId) { - taskService.deleteById(taskId); + public Object delete(@RequestParam Long taskId) { +// taskService.deleteById(taskId); + taskService.deleteTask(taskId); return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java index 43b8fed..a292b7f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -44,4 +44,6 @@ * @return */ void getUpdateList(); + + void deleteTask(Long id); } 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 2aa214e..2e07102 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 @@ -33,8 +33,13 @@ private static String[] sendArr = {"生产中", "已发货", "待交付"}; @Override - public List selectPageList(Page page, String projectName, Long devTypeId, String devcode, String pm) { - List deviceDtoList = this.baseMapper.selectPageList(page, projectName, devTypeId, devcode, pm); + public List selectPageList(Page page, String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = + this.baseMapper.selectPageList(page, 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])); @@ -42,37 +47,34 @@ return deviceDtoList; } -// @Override -// public void importDevice(List results) { -// List deviceList = new ArrayList<>(); -// for (Device device : results) { -// EntityWrapper wrapper = new EntityWrapper<>(); -// wrapper.eq("devcode", device.getDevcode()); -// List deviceList1 = this.baseMapper.selectList(wrapper); -// for (Device device1 : deviceList1) { -// device1.setIccid(device.getIccid()); -// device1.setImei(device.getImei()); -// device1.setIsSend(device.getIsSend()); -// device1.setDescription(device.getDescription()); -// deviceList.add(device1); -// } -// } -// if (deviceList != null && deviceList.size() > 0) { -// this.insertOrUpdateBatch(deviceList); -// } -// taskService.getUpdateList(); -// } - - - - - @Override public void importDevice(List results) { - this.insertBatch(results); + List deviceList = new ArrayList<>(); + for (Device device : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("devcode", device.getDevcode()); + List deviceList1 = this.baseMapper.selectList(wrapper); + for (Device device1 : deviceList1) { + device1.setIccid(device.getIccid()); + device1.setImei(device.getImei()); + device1.setIsSend(device.getIsSend()); + device1.setDescription(device.getDescription()); + deviceList.add(device1); + } + } + if (deviceList != null && deviceList.size() > 0) { + this.insertOrUpdateBatch(deviceList); + } + taskService.getUpdateList(); } +// @Override +// public void importDevice(List results) { +// this.insertBatch(results); +// } + + @Override public List reportExport(String projectName, Long devTypeId, @@ -96,4 +98,11 @@ public String getDevTypeBydevcode(String devcode) { return this.baseMapper.getDevTypeBydevcode(devcode); } + + @Override + public Device getDeviceByCode(String devcode){ + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.eq("devcode",devcode); + return this.selectOne(deviceEntityWrapper); + } } 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 7cb1f60..1ce57de 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 @@ -3,31 +3,40 @@ 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.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; 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.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.device.service.impl.DeviceServiceImpl; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; -import com.casic.missiles.modular.system.model.*; -import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.util.FileUtil; import com.casic.missiles.modular.task.service.ITaskService; import org.hswebframework.expands.office.excel.ExcelIO; 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.PathVariable; -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.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,13 +57,17 @@ @Autowired private ITaskService taskService; @Autowired - private IProductDeviceTypeService productDeviceTypeService; - @Autowired private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Resource + private ICommonFileService commonFileService; + @Value("${casic.file-download-path}") private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; + /** * 获取设备履历列表 */ @@ -86,8 +99,8 @@ 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():""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); } return new SuccessResponseData(super.packForBT(page)); } @@ -98,11 +111,36 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { + if (null == deviceService.getDeviceByCode(productRepairRecords.getDevcode())) { + return ResponseData.error(400, "设备编号不存在"); + } productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath1())){ +// productRepairRecords.setPhotopath1(productRepairRecords.getPhotopath1()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath2())){ +// productRepairRecords.setPhotopath2(productRepairRecords.getPhotopath2()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath3())){ +// productRepairRecords.setPhotopath3(productRepairRecords.getPhotopath3()); +// } +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.insert(productRepairRecords); Task task = taskService.selectById(productRepairRecords.getTaskid()); if ("1".equals(productRepairRecords.getIschange()) && null != task && @@ -110,6 +148,7 @@ if (task.getRemaincount() < 1) return ResponseData.error("备货任务单已无设备"); task.setRemaincount(task.getRemaincount() - 1); + taskService.insertOrUpdate(task); } return ResponseData.success(); } @@ -140,16 +179,30 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.updateById(productRepairRecords); return ResponseData.success(); } + /** * 设备履历详情 */ @@ -170,7 +223,7 @@ String devcode = httpServletRequest.getParameter("devcode"); String begTime = httpServletRequest.getParameter("begTime"); String endTime = httpServletRequest.getParameter("endTime"); - List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + List list = productRepairRecordsService.reportExport(devcode, begTime, endTime); FileInputStream fileInputStream = new FileInputStream(downloadPath + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); try { @@ -189,4 +242,72 @@ fileInputStream.close(); } } + + + /** + * 批量导入履历表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入履历信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("返修时间", "returntimeFmt"); + mapper.put("故障现象", "deviceProblem"); + mapper.put("检查人员", "checkName"); + mapper.put("故障定位", "deviceProblemLocation"); + mapper.put("原因分析", "analysis"); + mapper.put("归零措施", "zeroMeasures"); + mapper.put("维修人员", "repairName"); + mapper.put("完成时间", "finishtimeFmt"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductRepairRecords.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductRepairRecords repairRecords = row.getResult(); + + if (!ToolUtil.isAllEmpty(repairRecords.getDevcode(), repairRecords.getReturntimeFmt())) { + results.add(repairRecords); + } + } + } else { + row.shutdown(); + } + }); + productRepairRecordsService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入履历信息失败"); + } + return ResponseData.success(); + } + + + @RequestMapping(value = "/getPhoto") + 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)); + } + if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { + + 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)); + } + + } + } 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 15b9eb8..b1162d7 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 @@ -15,4 +15,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); + void 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 9c37938..4095754 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 @@ -8,13 +8,16 @@ import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductRepairRecords; import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IAccountService; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.sql.Timestamp; import java.util.List; /** @@ -34,6 +37,8 @@ private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Autowired + private IAccountService accountService; @Override public List reportExport(String devcode, String begTime, String endTime) { @@ -58,4 +63,25 @@ } return productRepairRecordsList; } + + + + @Override + public void importContract(List productRepairRecordsList) { + productRepairRecordsList.forEach(repairRecords -> { + if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + Account user = accountService.findUserByName(repairRecords.getCheckName()); + repairRecords.setCheckmanId(user!=null?user.getId():null); + } + if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + Account user = accountService.findUserByName(repairRecords.getRepairName()); + 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); + }); + this.insertBatch(productRepairRecordsList); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java index 5ee1e20..5d75451 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -11,18 +11,15 @@ import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ContractDict; -import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.model.Account; -import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.service.IAccountService; +import com.casic.missiles.modular.system.service.IContractService; import org.hswebframework.expands.office.excel.ExcelIO; 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.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -72,12 +69,13 @@ */ @RequestMapping(value = "/pageList") @ResponseBody - public Object listPage(String keyword1,String keyword2,String keyword3) { + public Object listPage(String keyword1, String keyword2, String keyword3) { Page page = new PageFactory().defaultPage(); - List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + List contractList = contractService.selectPageList(page, keyword1, keyword2, keyword3); page.setRecords(contractList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增 */ @@ -87,10 +85,10 @@ public Object add(Contract contract) { //合同编号一样,则覆盖 EntityWrapper contractEntityWrapper = new EntityWrapper<>(); - contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractEntityWrapper.eq("contract_number", contract.getContractNumber()); contractService.delete(contractEntityWrapper); - Account user=userService.findUserByName(contract.getPrincipal()); - contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.insert(contract); return ResponseData.success(); } @@ -122,15 +120,15 @@ @ResponseBody @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) public Object baseUpdate(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setContractNumber(contract.getContractNumber()); contract1.setContractName(contract.getContractName()); contract1.setContractAmount(contract.getContractAmount()); contract1.setContractContent(contract.getContractContent()); contract1.setContractFactory(contract.getContractFactory()); contract1.setPrincipal(contract.getPrincipal()); - Account user=userService.findUserByName(contract.getPrincipal()); - contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.updateById(contract1); return ResponseData.success(); } @@ -142,13 +140,14 @@ @ResponseBody @BussinessLog(value = "修改内网流程信息") public Object update(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setExternalCheckApply(contract.getExternalCheckApply()); contract1.setExternalContractApply(contract.getExternalContractApply()); contract1.setExternalProjectApply(contract.getExternalProjectApply()); contractService.updateById(contract1); return ResponseData.success(); } + /** * 导出合同列表 */ @@ -160,7 +159,7 @@ String keyword3 = httpServletRequest.getParameter("keyword3"); List list = contractService.reportExport(keyword1, keyword2, keyword3); FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + (list != null && list.size() > 0 ? "contractList.xlsx" : "contentNull.xlsx")); try { httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); @@ -223,13 +222,14 @@ /** * 根据id查详情 + * * @param id * @return */ @RequestMapping(value = "/selectById") @ResponseBody public Object detail(Long id) { - return ResponseData.success(200, + return ResponseData.success(200, "查询详情成功", contractService.selectById(id)); } @@ -245,4 +245,5 @@ List contractList = contractService.selectList(entityWrapper); return ResponseData.success(200, "", contractList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 509ad80..844ace2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -7,8 +7,12 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.service.IProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -16,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -33,6 +39,8 @@ @Autowired private IProjectService projectService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; /** * 获取项目管理列表 @@ -111,4 +119,25 @@ List projects = projectService.selectList(entityWrapper); return ResponseData.success(200, "", projects); } + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getDevTypes") + @ResponseBody + public Object getDevTypes(Long projectId) { + List deviceTypeDtos = new ArrayList<>(); + Project project = projectService.selectById(projectId); + if (ToolUtil.isNotEmpty(project) && ToolUtil.isNotEmpty(project.getDevTpeIds())) { + List productDeviceTypes = productDeviceTypeService. + selectBatchIds(Arrays.asList(project.getDevTpeIds().split(","))); + productDeviceTypes.forEach(productDeviceType -> { + DeviceTypeDto deviceTypeDto = new DeviceTypeDto(); + deviceTypeDto.setId(productDeviceType.getId()); + deviceTypeDto.setProductName(productDeviceType.getProductName()); + deviceTypeDtos.add(deviceTypeDto); + }); + } + return ResponseData.success(200, "", deviceTypeDtos); + } } 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 b57ce8e..0ca769c 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 @@ -21,7 +21,10 @@ @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); List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, 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 4a8d514..3426519 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 @@ -34,6 +34,8 @@ 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 as descn FROM product_device pd @@ -45,6 +47,8 @@ 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 @@ -55,11 +59,19 @@ 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 @@ -105,6 +117,7 @@ LEFT JOIN product_task pt ON pt.`id`=pb.`task_id` LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 @@ -113,5 +126,6 @@ LEFT JOIN product_device_type pdt ON pd.`devtype_id`=pdt.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml index 3efe420..537a52e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -34,6 +34,7 @@ pt.`devmode_id` AS devmodeId, pt.`devcount`, pt.`isstored`, + pt.`status`, pt.`isSend`, pc.`contract_number` AS contractNumber, pt.`devtype_id` AS devtypeId, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java index 43328de..85b7370 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -17,6 +17,8 @@ private String cardType; private String operator; private String descn ; + private String contractorNumber ; + private String productModel; public Long getId() { return id; @@ -145,4 +147,20 @@ public void setDescn(String descn) { this.descn = descn; } + + public String getContractorNumber() { + return contractorNumber; + } + + public void setContractorNumber(String contractorNumber) { + this.contractorNumber = contractorNumber; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java index 81516b7..63ba43e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -32,6 +32,7 @@ private Long devtypeId; @TableField("task_id") private Long taskId; + private Long remaincount; private Date createtime; @@ -91,6 +92,14 @@ this.devtypeId = devtypeId; } + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java index 893a1ed..8663e63 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -52,6 +52,7 @@ private String netFlow; @TableField("deptid") private String deptid; + private String isstored; public String getContractNumber() { return contractNumber; @@ -165,6 +166,14 @@ this.deptid = deptid; } + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java index eb0f678..c7ba0b6 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -91,6 +91,12 @@ private Long taskid; + private String photopath1; + + private String photopath2; + + private String photopath3; + @TableField(exist = false) private String returntimeFmt; @@ -105,6 +111,8 @@ @TableField(exist = false) private String checkName; + @TableField(exist = false) + private String repairName; public Long getId() { return id; @@ -250,7 +258,6 @@ this.zeroMeasures = zeroMeasures; } - public String getReturntimeFmt() { return returntimeFmt; } @@ -267,6 +274,38 @@ this.finishtimeFmt = finishtimeFmt; } + public String getPhotopath1() { + return photopath1; + } + + public void setPhotopath1(String photopath1) { + this.photopath1 = photopath1; + } + + public String getPhotopath2() { + return photopath2; + } + + public void setPhotopath2(String photopath2) { + this.photopath2 = photopath2; + } + + public String getPhotopath3() { + return photopath3; + } + + public void setPhotopath3(String photopath3) { + this.photopath3 = photopath3; + } + + public String getRepairName() { + return repairName; + } + + public void setRepairName(String repairName) { + this.repairName = repairName; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java index 00cbc92..89face9 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -29,6 +29,7 @@ @TableField("project_manager") private String projectManager; private String descn; + private String devTpeIds; @TableField("createtime") private Date createtime; @@ -81,6 +82,14 @@ this.createtime = createtime; } + public String getDevTpeIds() { + return devTpeIds; + } + + public void setDevTpeIds(String devTpeIds) { + this.devTpeIds = devTpeIds; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java index 4b610c4..c9f74d1 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -34,6 +34,7 @@ private Date deliveryTime; private String demand; private String isstored; + private String status; private String isSend; private String cardType; private String operator; @@ -205,6 +206,15 @@ this.operator = operator; } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java index 7497dc7..5a08962 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -1,11 +1,16 @@ package com.casic.missiles.modular.system.util; +import org.springframework.web.multipart.MultipartFile; + import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.UUID; public class FileUtil { public static File createFile(String path) throws IOException { @@ -56,4 +61,22 @@ return fileName; } + + public static String saveFile(MultipartFile file,String filePath) throws IOException { + if (!file.isEmpty()) { + String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java index 838dcf7..d6180a4 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -8,6 +8,7 @@ import com.casic.missiles.modular.system.model.Batch; import com.casic.missiles.modular.system.model.Task; import com.casic.missiles.modular.task.service.IBatchService; +import com.casic.missiles.modular.util.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; @@ -106,6 +107,7 @@ public Object getBatchNumber(Long devtypeId) { EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.ge("createtime", DateUtils.getCurrYearFirst()); entityWrapper.orderBy("id", false); Batch batch = batchService.selectOne(entityWrapper); return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); 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 e3e3348..5d82777 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 @@ -91,8 +91,9 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String taskId) { - taskService.deleteById(taskId); + public Object delete(@RequestParam Long taskId) { +// taskService.deleteById(taskId); + taskService.deleteTask(taskId); return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java index 43b8fed..a292b7f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -44,4 +44,6 @@ * @return */ void getUpdateList(); + + void deleteTask(Long id); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java index f6154ad..8d2e58e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -12,6 +12,7 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.DeviceUtil; import com.casic.missiles.modular.task.service.IBatchService; +import com.casic.missiles.modular.task.service.ITaskService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -36,62 +37,189 @@ private IProductDeviceTypeService deviceTypeService; @Autowired private IDeviceService deviceService; + @Autowired + private ITaskService taskService; - @Transactional(rollbackFor=Exception.class) - @Override - public ResponseData addBatchAndDevices(List batches, Task task) { - //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + + public void handleInventoryTask(List batches, Task task) { try { EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("task_id", task.getTaskId()); - List batchList = this.selectList(entityWrapper); - Map batchMap= new HashMap<>(); - Map batchMap1= new HashMap<>(); - List batchIdlist = new ArrayList<>(); - for (Batch batch : batches) { - batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); - batch.setTaskId(task.getTaskId()); + this.delete(entityWrapper); + //写入批次 + batches.forEach(batch -> { batch.setDevtypeId(task.getDevtypeId()); - batchIdlist.add(batch.getId()); - } + batch.setTaskId(task.getTaskId()); + }); this.insertBatch(batches); -// for (Batch batch : batchList) { -// batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); -// } -// -// //若批次号和数量不变只更新批次表 -// if (DeviceUtil.equalMap(batchMap, batchMap1)) { -// this.insertOrUpdateBatch(batches); -// } -// //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) -// else { -// -// //验证设备数量是否合格 -// ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); -// Map resultMap = DeviceUtil.validate(deviceType, batches, task); -// if (!Boolean.valueOf(resultMap.get("success").toString())) { -// return ResponseData.error(400, resultMap.get("msg").toString()); -// } -// //删除批次 -// EntityWrapper batchEntityWrapper = new EntityWrapper<>(); -// batchEntityWrapper.eq("task_id", task.getTaskId()); -// this.delete(batchEntityWrapper); -// //删除设备 -// EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); -// deviceEntityWrapper.in("batch_id", batchIdlist); -// deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); -// deviceService.delete(deviceEntityWrapper); -// -// //写入批次 -// this.insertBatch(batches); -// //写入设备 -// List deviceList = DeviceUtil.createDevCodes(deviceType, batches); -// deviceService.insertBatch(deviceList); -// } + //更新任务状态,已生成设备 + Task task1 = taskService.selectById(task.getTaskId()); + task1.setStatus("1"); + taskService.updateById(task1); } catch (Exception e) { e.printStackTrace(); } + } + + @Transactional(rollbackFor = Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + ProductDeviceType deviceType1 = deviceTypeService.selectById(task.getDevtypeId()); + //分为备货和非备货 + if ("1".equals(task.getIsstored()) || + (deviceType1 != null && deviceType1.getProductName().indexOf("电子标识器") != -1)) { + handleInventoryTask(batches, task); + } else if ("0".equals(task.getIsstored())) { + try { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap = new HashMap<>(); + Map batchMap1 = new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(), batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } +// this.insertBatch(batches); + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(), batch.getBatchCount()); + } + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + Map resultNumMap = validateNumber(deviceType, batches); + if (!Boolean.valueOf(resultNumMap.get("success").toString())) { + return ResponseData.error(400, resultNumMap.get("msg").toString()); + } + +// EntityWrapper batchEntityWrapper = new EntityWrapper<>(); +// batchEntityWrapper.eq("task_id", task.getTaskId()); +// List batches1 = this.selectList(batchEntityWrapper); +// if (batches1.size() > 0) { +// //删除批次 +// batches1.forEach(batch -> { +// this.deleteById(batch.getId()); +// }); +// //删除设备 +// EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); +// deviceEntityWrapper.in("batch_id", batchIdlist); +// deviceEntityWrapper.eq("devtype_id", task.getDevtypeId()); +// deviceService.delete(deviceEntityWrapper); +// //如果是备案合同的批次,应该恢复删除数量 +// batchList.forEach(batch -> { +// long count = batch.getBatchCount(); +// List batchList1 = getList(batch.getContractId(), deviceType.getId()); +// for (Batch batch1 : batchList1) { +// if (count < 1) break; +// if (count <= batch1.getBatchCount() - batch1.getRemaincount()) { +// batch1.setRemaincount(batch1.getRemaincount() + count); +// this.updateById(batch1); +// } else { +// batch1.setRemaincount(batch1.getBatchCount()); +// count = count - (batch1.getBatchCount() - batch1.getRemaincount()); +// this.updateById(batch1); +// } +// } +// }); +// } + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + //更新任务状态,已生成设备 + Task task1 = taskService.selectById(task.getTaskId()); + task1.setStatus("1"); + taskService.updateById(task1); + } + } catch (Exception e) { + e.printStackTrace(); + } + } return ResponseData.success(); } + public List getList(Long contractId, Long devtypeId) { + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("contract_id", contractId); + batchEntityWrapper.eq("devtype_id", devtypeId); + batchEntityWrapper.eq("batch_number", 0); + return selectList(batchEntityWrapper); + } + + public Map validateNumber(ProductDeviceType deviceType, List batches) { + + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + try { + List batchList = new ArrayList<>(); + Map contractMap = new HashMap<>(); + for (Batch batch : batches) { + contractMap.put(batch.getContractId(), contractMap.containsKey(batch.getContractId()) ? + (contractMap.get(batch.getContractId()) + batch.getBatchCount()) : + batch.getBatchCount()); + } + for (Map.Entry entry : contractMap.entrySet()) { + Long mapKey = entry.getKey(); + Long mapValue = entry.getValue(); + List batches1 = getList(mapKey, deviceType.getId()); + if (batches1.size() > 0) { + long count = 0; + for (Batch batch : batches1) { + count += batch.getRemaincount(); + } + if (mapValue > count) { + success = false; + msg = "备货数量不足,请重新填写"; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + } + batchList.addAll(batches1); + } + //验证通过后,减去备案合同数量, + for (Map.Entry entry : contractMap.entrySet()) { + Long mapKey = entry.getKey(); + Long mapValue = entry.getValue(); + long count = mapValue; + for (Batch batch1 : batchList) + if (count > 0 && batch1.getContractId() .equals( mapKey)) { + if (batch1.getRemaincount() >= count) { + batch1.setRemaincount(batch1.getRemaincount() - count); + this.updateById(batch1); + } else if (batch1.getRemaincount() > 0) { + batch1.setRemaincount(0L); + this.updateById(batch1); + count = count - batch1.getRemaincount(); + } + } + } + } catch ( + Exception e) { + e.printStackTrace(); + success = false; + msg = "验证失败"; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + resultMap.put("success", success); + resultMap.put("msg", msg); + 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 2aa214e..2e07102 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 @@ -33,8 +33,13 @@ private static String[] sendArr = {"生产中", "已发货", "待交付"}; @Override - public List selectPageList(Page page, String projectName, Long devTypeId, String devcode, String pm) { - List deviceDtoList = this.baseMapper.selectPageList(page, projectName, devTypeId, devcode, pm); + public List selectPageList(Page page, String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = + this.baseMapper.selectPageList(page, 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])); @@ -42,37 +47,34 @@ return deviceDtoList; } -// @Override -// public void importDevice(List results) { -// List deviceList = new ArrayList<>(); -// for (Device device : results) { -// EntityWrapper wrapper = new EntityWrapper<>(); -// wrapper.eq("devcode", device.getDevcode()); -// List deviceList1 = this.baseMapper.selectList(wrapper); -// for (Device device1 : deviceList1) { -// device1.setIccid(device.getIccid()); -// device1.setImei(device.getImei()); -// device1.setIsSend(device.getIsSend()); -// device1.setDescription(device.getDescription()); -// deviceList.add(device1); -// } -// } -// if (deviceList != null && deviceList.size() > 0) { -// this.insertOrUpdateBatch(deviceList); -// } -// taskService.getUpdateList(); -// } - - - - - @Override public void importDevice(List results) { - this.insertBatch(results); + List deviceList = new ArrayList<>(); + for (Device device : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("devcode", device.getDevcode()); + List deviceList1 = this.baseMapper.selectList(wrapper); + for (Device device1 : deviceList1) { + device1.setIccid(device.getIccid()); + device1.setImei(device.getImei()); + device1.setIsSend(device.getIsSend()); + device1.setDescription(device.getDescription()); + deviceList.add(device1); + } + } + if (deviceList != null && deviceList.size() > 0) { + this.insertOrUpdateBatch(deviceList); + } + taskService.getUpdateList(); } +// @Override +// public void importDevice(List results) { +// this.insertBatch(results); +// } + + @Override public List reportExport(String projectName, Long devTypeId, @@ -96,4 +98,11 @@ public String getDevTypeBydevcode(String devcode) { return this.baseMapper.getDevTypeBydevcode(devcode); } + + @Override + public Device getDeviceByCode(String devcode){ + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.eq("devcode",devcode); + return this.selectOne(deviceEntityWrapper); + } } 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 7cb1f60..1ce57de 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 @@ -3,31 +3,40 @@ 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.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; 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.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.device.service.impl.DeviceServiceImpl; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; -import com.casic.missiles.modular.system.model.*; -import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.util.FileUtil; import com.casic.missiles.modular.task.service.ITaskService; import org.hswebframework.expands.office.excel.ExcelIO; 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.PathVariable; -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.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,13 +57,17 @@ @Autowired private ITaskService taskService; @Autowired - private IProductDeviceTypeService productDeviceTypeService; - @Autowired private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Resource + private ICommonFileService commonFileService; + @Value("${casic.file-download-path}") private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; + /** * 获取设备履历列表 */ @@ -86,8 +99,8 @@ 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():""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); } return new SuccessResponseData(super.packForBT(page)); } @@ -98,11 +111,36 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { + if (null == deviceService.getDeviceByCode(productRepairRecords.getDevcode())) { + return ResponseData.error(400, "设备编号不存在"); + } productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath1())){ +// productRepairRecords.setPhotopath1(productRepairRecords.getPhotopath1()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath2())){ +// productRepairRecords.setPhotopath2(productRepairRecords.getPhotopath2()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath3())){ +// productRepairRecords.setPhotopath3(productRepairRecords.getPhotopath3()); +// } +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.insert(productRepairRecords); Task task = taskService.selectById(productRepairRecords.getTaskid()); if ("1".equals(productRepairRecords.getIschange()) && null != task && @@ -110,6 +148,7 @@ if (task.getRemaincount() < 1) return ResponseData.error("备货任务单已无设备"); task.setRemaincount(task.getRemaincount() - 1); + taskService.insertOrUpdate(task); } return ResponseData.success(); } @@ -140,16 +179,30 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.updateById(productRepairRecords); return ResponseData.success(); } + /** * 设备履历详情 */ @@ -170,7 +223,7 @@ String devcode = httpServletRequest.getParameter("devcode"); String begTime = httpServletRequest.getParameter("begTime"); String endTime = httpServletRequest.getParameter("endTime"); - List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + List list = productRepairRecordsService.reportExport(devcode, begTime, endTime); FileInputStream fileInputStream = new FileInputStream(downloadPath + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); try { @@ -189,4 +242,72 @@ fileInputStream.close(); } } + + + /** + * 批量导入履历表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入履历信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("返修时间", "returntimeFmt"); + mapper.put("故障现象", "deviceProblem"); + mapper.put("检查人员", "checkName"); + mapper.put("故障定位", "deviceProblemLocation"); + mapper.put("原因分析", "analysis"); + mapper.put("归零措施", "zeroMeasures"); + mapper.put("维修人员", "repairName"); + mapper.put("完成时间", "finishtimeFmt"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductRepairRecords.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductRepairRecords repairRecords = row.getResult(); + + if (!ToolUtil.isAllEmpty(repairRecords.getDevcode(), repairRecords.getReturntimeFmt())) { + results.add(repairRecords); + } + } + } else { + row.shutdown(); + } + }); + productRepairRecordsService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入履历信息失败"); + } + return ResponseData.success(); + } + + + @RequestMapping(value = "/getPhoto") + 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)); + } + if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { + + 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)); + } + + } + } 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 15b9eb8..b1162d7 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 @@ -15,4 +15,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); + void 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 9c37938..4095754 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 @@ -8,13 +8,16 @@ import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductRepairRecords; import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IAccountService; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.sql.Timestamp; import java.util.List; /** @@ -34,6 +37,8 @@ private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Autowired + private IAccountService accountService; @Override public List reportExport(String devcode, String begTime, String endTime) { @@ -58,4 +63,25 @@ } return productRepairRecordsList; } + + + + @Override + public void importContract(List productRepairRecordsList) { + productRepairRecordsList.forEach(repairRecords -> { + if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + Account user = accountService.findUserByName(repairRecords.getCheckName()); + repairRecords.setCheckmanId(user!=null?user.getId():null); + } + if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + Account user = accountService.findUserByName(repairRecords.getRepairName()); + 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); + }); + this.insertBatch(productRepairRecordsList); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java index 5ee1e20..5d75451 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -11,18 +11,15 @@ import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ContractDict; -import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.model.Account; -import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.service.IAccountService; +import com.casic.missiles.modular.system.service.IContractService; import org.hswebframework.expands.office.excel.ExcelIO; 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.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -72,12 +69,13 @@ */ @RequestMapping(value = "/pageList") @ResponseBody - public Object listPage(String keyword1,String keyword2,String keyword3) { + public Object listPage(String keyword1, String keyword2, String keyword3) { Page page = new PageFactory().defaultPage(); - List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + List contractList = contractService.selectPageList(page, keyword1, keyword2, keyword3); page.setRecords(contractList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增 */ @@ -87,10 +85,10 @@ public Object add(Contract contract) { //合同编号一样,则覆盖 EntityWrapper contractEntityWrapper = new EntityWrapper<>(); - contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractEntityWrapper.eq("contract_number", contract.getContractNumber()); contractService.delete(contractEntityWrapper); - Account user=userService.findUserByName(contract.getPrincipal()); - contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.insert(contract); return ResponseData.success(); } @@ -122,15 +120,15 @@ @ResponseBody @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) public Object baseUpdate(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setContractNumber(contract.getContractNumber()); contract1.setContractName(contract.getContractName()); contract1.setContractAmount(contract.getContractAmount()); contract1.setContractContent(contract.getContractContent()); contract1.setContractFactory(contract.getContractFactory()); contract1.setPrincipal(contract.getPrincipal()); - Account user=userService.findUserByName(contract.getPrincipal()); - contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.updateById(contract1); return ResponseData.success(); } @@ -142,13 +140,14 @@ @ResponseBody @BussinessLog(value = "修改内网流程信息") public Object update(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setExternalCheckApply(contract.getExternalCheckApply()); contract1.setExternalContractApply(contract.getExternalContractApply()); contract1.setExternalProjectApply(contract.getExternalProjectApply()); contractService.updateById(contract1); return ResponseData.success(); } + /** * 导出合同列表 */ @@ -160,7 +159,7 @@ String keyword3 = httpServletRequest.getParameter("keyword3"); List list = contractService.reportExport(keyword1, keyword2, keyword3); FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + (list != null && list.size() > 0 ? "contractList.xlsx" : "contentNull.xlsx")); try { httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); @@ -223,13 +222,14 @@ /** * 根据id查详情 + * * @param id * @return */ @RequestMapping(value = "/selectById") @ResponseBody public Object detail(Long id) { - return ResponseData.success(200, + return ResponseData.success(200, "查询详情成功", contractService.selectById(id)); } @@ -245,4 +245,5 @@ List contractList = contractService.selectList(entityWrapper); return ResponseData.success(200, "", contractList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 509ad80..844ace2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -7,8 +7,12 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.service.IProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -16,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -33,6 +39,8 @@ @Autowired private IProjectService projectService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; /** * 获取项目管理列表 @@ -111,4 +119,25 @@ List projects = projectService.selectList(entityWrapper); return ResponseData.success(200, "", projects); } + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getDevTypes") + @ResponseBody + public Object getDevTypes(Long projectId) { + List deviceTypeDtos = new ArrayList<>(); + Project project = projectService.selectById(projectId); + if (ToolUtil.isNotEmpty(project) && ToolUtil.isNotEmpty(project.getDevTpeIds())) { + List productDeviceTypes = productDeviceTypeService. + selectBatchIds(Arrays.asList(project.getDevTpeIds().split(","))); + productDeviceTypes.forEach(productDeviceType -> { + DeviceTypeDto deviceTypeDto = new DeviceTypeDto(); + deviceTypeDto.setId(productDeviceType.getId()); + deviceTypeDto.setProductName(productDeviceType.getProductName()); + deviceTypeDtos.add(deviceTypeDto); + }); + } + return ResponseData.success(200, "", deviceTypeDtos); + } } 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 b57ce8e..0ca769c 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 @@ -21,7 +21,10 @@ @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); List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, 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 4a8d514..3426519 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 @@ -34,6 +34,8 @@ 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 as descn FROM product_device pd @@ -45,6 +47,8 @@ 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 @@ -55,11 +59,19 @@ 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 @@ -105,6 +117,7 @@ LEFT JOIN product_task pt ON pt.`id`=pb.`task_id` LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 @@ -113,5 +126,6 @@ LEFT JOIN product_device_type pdt ON pd.`devtype_id`=pdt.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml index 3efe420..537a52e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -34,6 +34,7 @@ pt.`devmode_id` AS devmodeId, pt.`devcount`, pt.`isstored`, + pt.`status`, pt.`isSend`, pc.`contract_number` AS contractNumber, pt.`devtype_id` AS devtypeId, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java index 43328de..85b7370 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -17,6 +17,8 @@ private String cardType; private String operator; private String descn ; + private String contractorNumber ; + private String productModel; public Long getId() { return id; @@ -145,4 +147,20 @@ public void setDescn(String descn) { this.descn = descn; } + + public String getContractorNumber() { + return contractorNumber; + } + + public void setContractorNumber(String contractorNumber) { + this.contractorNumber = contractorNumber; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java index 81516b7..63ba43e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -32,6 +32,7 @@ private Long devtypeId; @TableField("task_id") private Long taskId; + private Long remaincount; private Date createtime; @@ -91,6 +92,14 @@ this.devtypeId = devtypeId; } + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java index 893a1ed..8663e63 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -52,6 +52,7 @@ private String netFlow; @TableField("deptid") private String deptid; + private String isstored; public String getContractNumber() { return contractNumber; @@ -165,6 +166,14 @@ this.deptid = deptid; } + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java index eb0f678..c7ba0b6 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -91,6 +91,12 @@ private Long taskid; + private String photopath1; + + private String photopath2; + + private String photopath3; + @TableField(exist = false) private String returntimeFmt; @@ -105,6 +111,8 @@ @TableField(exist = false) private String checkName; + @TableField(exist = false) + private String repairName; public Long getId() { return id; @@ -250,7 +258,6 @@ this.zeroMeasures = zeroMeasures; } - public String getReturntimeFmt() { return returntimeFmt; } @@ -267,6 +274,38 @@ this.finishtimeFmt = finishtimeFmt; } + public String getPhotopath1() { + return photopath1; + } + + public void setPhotopath1(String photopath1) { + this.photopath1 = photopath1; + } + + public String getPhotopath2() { + return photopath2; + } + + public void setPhotopath2(String photopath2) { + this.photopath2 = photopath2; + } + + public String getPhotopath3() { + return photopath3; + } + + public void setPhotopath3(String photopath3) { + this.photopath3 = photopath3; + } + + public String getRepairName() { + return repairName; + } + + public void setRepairName(String repairName) { + this.repairName = repairName; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java index 00cbc92..89face9 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -29,6 +29,7 @@ @TableField("project_manager") private String projectManager; private String descn; + private String devTpeIds; @TableField("createtime") private Date createtime; @@ -81,6 +82,14 @@ this.createtime = createtime; } + public String getDevTpeIds() { + return devTpeIds; + } + + public void setDevTpeIds(String devTpeIds) { + this.devTpeIds = devTpeIds; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java index 4b610c4..c9f74d1 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -34,6 +34,7 @@ private Date deliveryTime; private String demand; private String isstored; + private String status; private String isSend; private String cardType; private String operator; @@ -205,6 +206,15 @@ this.operator = operator; } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java index 7497dc7..5a08962 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -1,11 +1,16 @@ package com.casic.missiles.modular.system.util; +import org.springframework.web.multipart.MultipartFile; + import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.UUID; public class FileUtil { public static File createFile(String path) throws IOException { @@ -56,4 +61,22 @@ return fileName; } + + public static String saveFile(MultipartFile file,String filePath) throws IOException { + if (!file.isEmpty()) { + String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java index 838dcf7..d6180a4 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -8,6 +8,7 @@ import com.casic.missiles.modular.system.model.Batch; import com.casic.missiles.modular.system.model.Task; import com.casic.missiles.modular.task.service.IBatchService; +import com.casic.missiles.modular.util.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; @@ -106,6 +107,7 @@ public Object getBatchNumber(Long devtypeId) { EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.ge("createtime", DateUtils.getCurrYearFirst()); entityWrapper.orderBy("id", false); Batch batch = batchService.selectOne(entityWrapper); return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); 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 e3e3348..5d82777 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 @@ -91,8 +91,9 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String taskId) { - taskService.deleteById(taskId); + public Object delete(@RequestParam Long taskId) { +// taskService.deleteById(taskId); + taskService.deleteTask(taskId); return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java index 43b8fed..a292b7f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -44,4 +44,6 @@ * @return */ void getUpdateList(); + + void deleteTask(Long id); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java index f6154ad..8d2e58e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -12,6 +12,7 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.DeviceUtil; import com.casic.missiles.modular.task.service.IBatchService; +import com.casic.missiles.modular.task.service.ITaskService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -36,62 +37,189 @@ private IProductDeviceTypeService deviceTypeService; @Autowired private IDeviceService deviceService; + @Autowired + private ITaskService taskService; - @Transactional(rollbackFor=Exception.class) - @Override - public ResponseData addBatchAndDevices(List batches, Task task) { - //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + + public void handleInventoryTask(List batches, Task task) { try { EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("task_id", task.getTaskId()); - List batchList = this.selectList(entityWrapper); - Map batchMap= new HashMap<>(); - Map batchMap1= new HashMap<>(); - List batchIdlist = new ArrayList<>(); - for (Batch batch : batches) { - batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); - batch.setTaskId(task.getTaskId()); + this.delete(entityWrapper); + //写入批次 + batches.forEach(batch -> { batch.setDevtypeId(task.getDevtypeId()); - batchIdlist.add(batch.getId()); - } + batch.setTaskId(task.getTaskId()); + }); this.insertBatch(batches); -// for (Batch batch : batchList) { -// batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); -// } -// -// //若批次号和数量不变只更新批次表 -// if (DeviceUtil.equalMap(batchMap, batchMap1)) { -// this.insertOrUpdateBatch(batches); -// } -// //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) -// else { -// -// //验证设备数量是否合格 -// ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); -// Map resultMap = DeviceUtil.validate(deviceType, batches, task); -// if (!Boolean.valueOf(resultMap.get("success").toString())) { -// return ResponseData.error(400, resultMap.get("msg").toString()); -// } -// //删除批次 -// EntityWrapper batchEntityWrapper = new EntityWrapper<>(); -// batchEntityWrapper.eq("task_id", task.getTaskId()); -// this.delete(batchEntityWrapper); -// //删除设备 -// EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); -// deviceEntityWrapper.in("batch_id", batchIdlist); -// deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); -// deviceService.delete(deviceEntityWrapper); -// -// //写入批次 -// this.insertBatch(batches); -// //写入设备 -// List deviceList = DeviceUtil.createDevCodes(deviceType, batches); -// deviceService.insertBatch(deviceList); -// } + //更新任务状态,已生成设备 + Task task1 = taskService.selectById(task.getTaskId()); + task1.setStatus("1"); + taskService.updateById(task1); } catch (Exception e) { e.printStackTrace(); } + } + + @Transactional(rollbackFor = Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + ProductDeviceType deviceType1 = deviceTypeService.selectById(task.getDevtypeId()); + //分为备货和非备货 + if ("1".equals(task.getIsstored()) || + (deviceType1 != null && deviceType1.getProductName().indexOf("电子标识器") != -1)) { + handleInventoryTask(batches, task); + } else if ("0".equals(task.getIsstored())) { + try { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap = new HashMap<>(); + Map batchMap1 = new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(), batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } +// this.insertBatch(batches); + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(), batch.getBatchCount()); + } + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + Map resultNumMap = validateNumber(deviceType, batches); + if (!Boolean.valueOf(resultNumMap.get("success").toString())) { + return ResponseData.error(400, resultNumMap.get("msg").toString()); + } + +// EntityWrapper batchEntityWrapper = new EntityWrapper<>(); +// batchEntityWrapper.eq("task_id", task.getTaskId()); +// List batches1 = this.selectList(batchEntityWrapper); +// if (batches1.size() > 0) { +// //删除批次 +// batches1.forEach(batch -> { +// this.deleteById(batch.getId()); +// }); +// //删除设备 +// EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); +// deviceEntityWrapper.in("batch_id", batchIdlist); +// deviceEntityWrapper.eq("devtype_id", task.getDevtypeId()); +// deviceService.delete(deviceEntityWrapper); +// //如果是备案合同的批次,应该恢复删除数量 +// batchList.forEach(batch -> { +// long count = batch.getBatchCount(); +// List batchList1 = getList(batch.getContractId(), deviceType.getId()); +// for (Batch batch1 : batchList1) { +// if (count < 1) break; +// if (count <= batch1.getBatchCount() - batch1.getRemaincount()) { +// batch1.setRemaincount(batch1.getRemaincount() + count); +// this.updateById(batch1); +// } else { +// batch1.setRemaincount(batch1.getBatchCount()); +// count = count - (batch1.getBatchCount() - batch1.getRemaincount()); +// this.updateById(batch1); +// } +// } +// }); +// } + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + //更新任务状态,已生成设备 + Task task1 = taskService.selectById(task.getTaskId()); + task1.setStatus("1"); + taskService.updateById(task1); + } + } catch (Exception e) { + e.printStackTrace(); + } + } return ResponseData.success(); } + public List getList(Long contractId, Long devtypeId) { + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("contract_id", contractId); + batchEntityWrapper.eq("devtype_id", devtypeId); + batchEntityWrapper.eq("batch_number", 0); + return selectList(batchEntityWrapper); + } + + public Map validateNumber(ProductDeviceType deviceType, List batches) { + + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + try { + List batchList = new ArrayList<>(); + Map contractMap = new HashMap<>(); + for (Batch batch : batches) { + contractMap.put(batch.getContractId(), contractMap.containsKey(batch.getContractId()) ? + (contractMap.get(batch.getContractId()) + batch.getBatchCount()) : + batch.getBatchCount()); + } + for (Map.Entry entry : contractMap.entrySet()) { + Long mapKey = entry.getKey(); + Long mapValue = entry.getValue(); + List batches1 = getList(mapKey, deviceType.getId()); + if (batches1.size() > 0) { + long count = 0; + for (Batch batch : batches1) { + count += batch.getRemaincount(); + } + if (mapValue > count) { + success = false; + msg = "备货数量不足,请重新填写"; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + } + batchList.addAll(batches1); + } + //验证通过后,减去备案合同数量, + for (Map.Entry entry : contractMap.entrySet()) { + Long mapKey = entry.getKey(); + Long mapValue = entry.getValue(); + long count = mapValue; + for (Batch batch1 : batchList) + if (count > 0 && batch1.getContractId() .equals( mapKey)) { + if (batch1.getRemaincount() >= count) { + batch1.setRemaincount(batch1.getRemaincount() - count); + this.updateById(batch1); + } else if (batch1.getRemaincount() > 0) { + batch1.setRemaincount(0L); + this.updateById(batch1); + count = count - batch1.getRemaincount(); + } + } + } + } catch ( + Exception e) { + e.printStackTrace(); + success = false; + msg = "验证失败"; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java index 526f3c3..605de24 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -2,19 +2,22 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; +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.system.dto.TaskStatusDto; -import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dao.TaskMapper; +import com.casic.missiles.modular.system.dto.TaskStatusDto; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; import com.casic.missiles.modular.task.service.ITaskService; -import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; import java.util.List; /** @@ -28,7 +31,11 @@ @Service public class TaskServiceImpl extends ServiceImpl implements ITaskService { private static String[] sendArr = {"生产中", "已发货", "待交付"}; + @Autowired + private IBatchService batchService; + @Autowired + private IDeviceService deviceService; @Override public List selectPageList(Page page, String keyword1, String keyword2, String keyword3, String keyword4) { @@ -95,4 +102,52 @@ } // return this.selectList(entityWrapper); } + + @Override + public void deleteTask(Long id) { + Task task =selectById(id); + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", id); + List batchList = batchService.selectList(batchEntityWrapper); + + if (batchList.size() > 0) { + List batchIdlist = new ArrayList<>(); + //删除批次 + batchList.forEach(batch -> { + batchIdlist.add(batch.getId()); + batchService.deleteById(batch.getId()); + }); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id", task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + //如果是备案合同的批次,应该恢复删除数量 + batchList.forEach(batch -> { + long count = batch.getBatchCount(); + List batchList1 = getList(batch.getContractId(), task.getDevtypeId()); + for (Batch batch1 : batchList1) { + if (count < 1) break; + if (count <= batch1.getBatchCount() - batch1.getRemaincount()) { + batch1.setRemaincount(batch1.getRemaincount() + count); + batchService.updateById(batch1); + } else { + batch1.setRemaincount(batch1.getBatchCount()); + count = count - (batch1.getBatchCount() - batch1.getRemaincount()); + batchService.updateById(batch1); + } + } + }); + } + //删除任务 + deleteById(id); + } + + public List getList(Long contractId, Long devtypeId) { + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("contract_id", contractId); + batchEntityWrapper.eq("batch_number", 0); + batchEntityWrapper.eq("devtype_id", devtypeId); + return batchService.selectList(batchEntityWrapper); + } } 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 2aa214e..2e07102 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 @@ -33,8 +33,13 @@ private static String[] sendArr = {"生产中", "已发货", "待交付"}; @Override - public List selectPageList(Page page, String projectName, Long devTypeId, String devcode, String pm) { - List deviceDtoList = this.baseMapper.selectPageList(page, projectName, devTypeId, devcode, pm); + public List selectPageList(Page page, String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = + this.baseMapper.selectPageList(page, 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])); @@ -42,37 +47,34 @@ return deviceDtoList; } -// @Override -// public void importDevice(List results) { -// List deviceList = new ArrayList<>(); -// for (Device device : results) { -// EntityWrapper wrapper = new EntityWrapper<>(); -// wrapper.eq("devcode", device.getDevcode()); -// List deviceList1 = this.baseMapper.selectList(wrapper); -// for (Device device1 : deviceList1) { -// device1.setIccid(device.getIccid()); -// device1.setImei(device.getImei()); -// device1.setIsSend(device.getIsSend()); -// device1.setDescription(device.getDescription()); -// deviceList.add(device1); -// } -// } -// if (deviceList != null && deviceList.size() > 0) { -// this.insertOrUpdateBatch(deviceList); -// } -// taskService.getUpdateList(); -// } - - - - - @Override public void importDevice(List results) { - this.insertBatch(results); + List deviceList = new ArrayList<>(); + for (Device device : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("devcode", device.getDevcode()); + List deviceList1 = this.baseMapper.selectList(wrapper); + for (Device device1 : deviceList1) { + device1.setIccid(device.getIccid()); + device1.setImei(device.getImei()); + device1.setIsSend(device.getIsSend()); + device1.setDescription(device.getDescription()); + deviceList.add(device1); + } + } + if (deviceList != null && deviceList.size() > 0) { + this.insertOrUpdateBatch(deviceList); + } + taskService.getUpdateList(); } +// @Override +// public void importDevice(List results) { +// this.insertBatch(results); +// } + + @Override public List reportExport(String projectName, Long devTypeId, @@ -96,4 +98,11 @@ public String getDevTypeBydevcode(String devcode) { return this.baseMapper.getDevTypeBydevcode(devcode); } + + @Override + public Device getDeviceByCode(String devcode){ + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.eq("devcode",devcode); + return this.selectOne(deviceEntityWrapper); + } } 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 7cb1f60..1ce57de 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 @@ -3,31 +3,40 @@ 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.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; 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.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.device.service.impl.DeviceServiceImpl; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; -import com.casic.missiles.modular.system.model.*; -import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.util.FileUtil; import com.casic.missiles.modular.task.service.ITaskService; import org.hswebframework.expands.office.excel.ExcelIO; 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.PathVariable; -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.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,13 +57,17 @@ @Autowired private ITaskService taskService; @Autowired - private IProductDeviceTypeService productDeviceTypeService; - @Autowired private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Resource + private ICommonFileService commonFileService; + @Value("${casic.file-download-path}") private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; + /** * 获取设备履历列表 */ @@ -86,8 +99,8 @@ 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():""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); } return new SuccessResponseData(super.packForBT(page)); } @@ -98,11 +111,36 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { + if (null == deviceService.getDeviceByCode(productRepairRecords.getDevcode())) { + return ResponseData.error(400, "设备编号不存在"); + } productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath1())){ +// productRepairRecords.setPhotopath1(productRepairRecords.getPhotopath1()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath2())){ +// productRepairRecords.setPhotopath2(productRepairRecords.getPhotopath2()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath3())){ +// productRepairRecords.setPhotopath3(productRepairRecords.getPhotopath3()); +// } +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.insert(productRepairRecords); Task task = taskService.selectById(productRepairRecords.getTaskid()); if ("1".equals(productRepairRecords.getIschange()) && null != task && @@ -110,6 +148,7 @@ if (task.getRemaincount() < 1) return ResponseData.error("备货任务单已无设备"); task.setRemaincount(task.getRemaincount() - 1); + taskService.insertOrUpdate(task); } return ResponseData.success(); } @@ -140,16 +179,30 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.updateById(productRepairRecords); return ResponseData.success(); } + /** * 设备履历详情 */ @@ -170,7 +223,7 @@ String devcode = httpServletRequest.getParameter("devcode"); String begTime = httpServletRequest.getParameter("begTime"); String endTime = httpServletRequest.getParameter("endTime"); - List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + List list = productRepairRecordsService.reportExport(devcode, begTime, endTime); FileInputStream fileInputStream = new FileInputStream(downloadPath + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); try { @@ -189,4 +242,72 @@ fileInputStream.close(); } } + + + /** + * 批量导入履历表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入履历信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("返修时间", "returntimeFmt"); + mapper.put("故障现象", "deviceProblem"); + mapper.put("检查人员", "checkName"); + mapper.put("故障定位", "deviceProblemLocation"); + mapper.put("原因分析", "analysis"); + mapper.put("归零措施", "zeroMeasures"); + mapper.put("维修人员", "repairName"); + mapper.put("完成时间", "finishtimeFmt"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductRepairRecords.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductRepairRecords repairRecords = row.getResult(); + + if (!ToolUtil.isAllEmpty(repairRecords.getDevcode(), repairRecords.getReturntimeFmt())) { + results.add(repairRecords); + } + } + } else { + row.shutdown(); + } + }); + productRepairRecordsService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入履历信息失败"); + } + return ResponseData.success(); + } + + + @RequestMapping(value = "/getPhoto") + 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)); + } + if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { + + 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)); + } + + } + } 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 15b9eb8..b1162d7 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 @@ -15,4 +15,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); + void 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 9c37938..4095754 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 @@ -8,13 +8,16 @@ import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductRepairRecords; import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IAccountService; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.sql.Timestamp; import java.util.List; /** @@ -34,6 +37,8 @@ private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Autowired + private IAccountService accountService; @Override public List reportExport(String devcode, String begTime, String endTime) { @@ -58,4 +63,25 @@ } return productRepairRecordsList; } + + + + @Override + public void importContract(List productRepairRecordsList) { + productRepairRecordsList.forEach(repairRecords -> { + if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + Account user = accountService.findUserByName(repairRecords.getCheckName()); + repairRecords.setCheckmanId(user!=null?user.getId():null); + } + if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + Account user = accountService.findUserByName(repairRecords.getRepairName()); + 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); + }); + this.insertBatch(productRepairRecordsList); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java index 5ee1e20..5d75451 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -11,18 +11,15 @@ import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ContractDict; -import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.model.Account; -import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.service.IAccountService; +import com.casic.missiles.modular.system.service.IContractService; import org.hswebframework.expands.office.excel.ExcelIO; 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.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -72,12 +69,13 @@ */ @RequestMapping(value = "/pageList") @ResponseBody - public Object listPage(String keyword1,String keyword2,String keyword3) { + public Object listPage(String keyword1, String keyword2, String keyword3) { Page page = new PageFactory().defaultPage(); - List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + List contractList = contractService.selectPageList(page, keyword1, keyword2, keyword3); page.setRecords(contractList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增 */ @@ -87,10 +85,10 @@ public Object add(Contract contract) { //合同编号一样,则覆盖 EntityWrapper contractEntityWrapper = new EntityWrapper<>(); - contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractEntityWrapper.eq("contract_number", contract.getContractNumber()); contractService.delete(contractEntityWrapper); - Account user=userService.findUserByName(contract.getPrincipal()); - contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.insert(contract); return ResponseData.success(); } @@ -122,15 +120,15 @@ @ResponseBody @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) public Object baseUpdate(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setContractNumber(contract.getContractNumber()); contract1.setContractName(contract.getContractName()); contract1.setContractAmount(contract.getContractAmount()); contract1.setContractContent(contract.getContractContent()); contract1.setContractFactory(contract.getContractFactory()); contract1.setPrincipal(contract.getPrincipal()); - Account user=userService.findUserByName(contract.getPrincipal()); - contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.updateById(contract1); return ResponseData.success(); } @@ -142,13 +140,14 @@ @ResponseBody @BussinessLog(value = "修改内网流程信息") public Object update(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setExternalCheckApply(contract.getExternalCheckApply()); contract1.setExternalContractApply(contract.getExternalContractApply()); contract1.setExternalProjectApply(contract.getExternalProjectApply()); contractService.updateById(contract1); return ResponseData.success(); } + /** * 导出合同列表 */ @@ -160,7 +159,7 @@ String keyword3 = httpServletRequest.getParameter("keyword3"); List list = contractService.reportExport(keyword1, keyword2, keyword3); FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + (list != null && list.size() > 0 ? "contractList.xlsx" : "contentNull.xlsx")); try { httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); @@ -223,13 +222,14 @@ /** * 根据id查详情 + * * @param id * @return */ @RequestMapping(value = "/selectById") @ResponseBody public Object detail(Long id) { - return ResponseData.success(200, + return ResponseData.success(200, "查询详情成功", contractService.selectById(id)); } @@ -245,4 +245,5 @@ List contractList = contractService.selectList(entityWrapper); return ResponseData.success(200, "", contractList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 509ad80..844ace2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -7,8 +7,12 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.service.IProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -16,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -33,6 +39,8 @@ @Autowired private IProjectService projectService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; /** * 获取项目管理列表 @@ -111,4 +119,25 @@ List projects = projectService.selectList(entityWrapper); return ResponseData.success(200, "", projects); } + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getDevTypes") + @ResponseBody + public Object getDevTypes(Long projectId) { + List deviceTypeDtos = new ArrayList<>(); + Project project = projectService.selectById(projectId); + if (ToolUtil.isNotEmpty(project) && ToolUtil.isNotEmpty(project.getDevTpeIds())) { + List productDeviceTypes = productDeviceTypeService. + selectBatchIds(Arrays.asList(project.getDevTpeIds().split(","))); + productDeviceTypes.forEach(productDeviceType -> { + DeviceTypeDto deviceTypeDto = new DeviceTypeDto(); + deviceTypeDto.setId(productDeviceType.getId()); + deviceTypeDto.setProductName(productDeviceType.getProductName()); + deviceTypeDtos.add(deviceTypeDto); + }); + } + return ResponseData.success(200, "", deviceTypeDtos); + } } 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 b57ce8e..0ca769c 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 @@ -21,7 +21,10 @@ @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); List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, 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 4a8d514..3426519 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 @@ -34,6 +34,8 @@ 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 as descn FROM product_device pd @@ -45,6 +47,8 @@ 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 @@ -55,11 +59,19 @@ 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 @@ -105,6 +117,7 @@ LEFT JOIN product_task pt ON pt.`id`=pb.`task_id` LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 @@ -113,5 +126,6 @@ LEFT JOIN product_device_type pdt ON pd.`devtype_id`=pdt.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml index 3efe420..537a52e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -34,6 +34,7 @@ pt.`devmode_id` AS devmodeId, pt.`devcount`, pt.`isstored`, + pt.`status`, pt.`isSend`, pc.`contract_number` AS contractNumber, pt.`devtype_id` AS devtypeId, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java index 43328de..85b7370 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -17,6 +17,8 @@ private String cardType; private String operator; private String descn ; + private String contractorNumber ; + private String productModel; public Long getId() { return id; @@ -145,4 +147,20 @@ public void setDescn(String descn) { this.descn = descn; } + + public String getContractorNumber() { + return contractorNumber; + } + + public void setContractorNumber(String contractorNumber) { + this.contractorNumber = contractorNumber; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java index 81516b7..63ba43e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -32,6 +32,7 @@ private Long devtypeId; @TableField("task_id") private Long taskId; + private Long remaincount; private Date createtime; @@ -91,6 +92,14 @@ this.devtypeId = devtypeId; } + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java index 893a1ed..8663e63 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -52,6 +52,7 @@ private String netFlow; @TableField("deptid") private String deptid; + private String isstored; public String getContractNumber() { return contractNumber; @@ -165,6 +166,14 @@ this.deptid = deptid; } + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java index eb0f678..c7ba0b6 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -91,6 +91,12 @@ private Long taskid; + private String photopath1; + + private String photopath2; + + private String photopath3; + @TableField(exist = false) private String returntimeFmt; @@ -105,6 +111,8 @@ @TableField(exist = false) private String checkName; + @TableField(exist = false) + private String repairName; public Long getId() { return id; @@ -250,7 +258,6 @@ this.zeroMeasures = zeroMeasures; } - public String getReturntimeFmt() { return returntimeFmt; } @@ -267,6 +274,38 @@ this.finishtimeFmt = finishtimeFmt; } + public String getPhotopath1() { + return photopath1; + } + + public void setPhotopath1(String photopath1) { + this.photopath1 = photopath1; + } + + public String getPhotopath2() { + return photopath2; + } + + public void setPhotopath2(String photopath2) { + this.photopath2 = photopath2; + } + + public String getPhotopath3() { + return photopath3; + } + + public void setPhotopath3(String photopath3) { + this.photopath3 = photopath3; + } + + public String getRepairName() { + return repairName; + } + + public void setRepairName(String repairName) { + this.repairName = repairName; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java index 00cbc92..89face9 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -29,6 +29,7 @@ @TableField("project_manager") private String projectManager; private String descn; + private String devTpeIds; @TableField("createtime") private Date createtime; @@ -81,6 +82,14 @@ this.createtime = createtime; } + public String getDevTpeIds() { + return devTpeIds; + } + + public void setDevTpeIds(String devTpeIds) { + this.devTpeIds = devTpeIds; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java index 4b610c4..c9f74d1 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -34,6 +34,7 @@ private Date deliveryTime; private String demand; private String isstored; + private String status; private String isSend; private String cardType; private String operator; @@ -205,6 +206,15 @@ this.operator = operator; } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java index 7497dc7..5a08962 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -1,11 +1,16 @@ package com.casic.missiles.modular.system.util; +import org.springframework.web.multipart.MultipartFile; + import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.UUID; public class FileUtil { public static File createFile(String path) throws IOException { @@ -56,4 +61,22 @@ return fileName; } + + public static String saveFile(MultipartFile file,String filePath) throws IOException { + if (!file.isEmpty()) { + String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java index 838dcf7..d6180a4 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -8,6 +8,7 @@ import com.casic.missiles.modular.system.model.Batch; import com.casic.missiles.modular.system.model.Task; import com.casic.missiles.modular.task.service.IBatchService; +import com.casic.missiles.modular.util.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; @@ -106,6 +107,7 @@ public Object getBatchNumber(Long devtypeId) { EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.ge("createtime", DateUtils.getCurrYearFirst()); entityWrapper.orderBy("id", false); Batch batch = batchService.selectOne(entityWrapper); return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); 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 e3e3348..5d82777 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 @@ -91,8 +91,9 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String taskId) { - taskService.deleteById(taskId); + public Object delete(@RequestParam Long taskId) { +// taskService.deleteById(taskId); + taskService.deleteTask(taskId); return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java index 43b8fed..a292b7f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -44,4 +44,6 @@ * @return */ void getUpdateList(); + + void deleteTask(Long id); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java index f6154ad..8d2e58e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -12,6 +12,7 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.DeviceUtil; import com.casic.missiles.modular.task.service.IBatchService; +import com.casic.missiles.modular.task.service.ITaskService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -36,62 +37,189 @@ private IProductDeviceTypeService deviceTypeService; @Autowired private IDeviceService deviceService; + @Autowired + private ITaskService taskService; - @Transactional(rollbackFor=Exception.class) - @Override - public ResponseData addBatchAndDevices(List batches, Task task) { - //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + + public void handleInventoryTask(List batches, Task task) { try { EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("task_id", task.getTaskId()); - List batchList = this.selectList(entityWrapper); - Map batchMap= new HashMap<>(); - Map batchMap1= new HashMap<>(); - List batchIdlist = new ArrayList<>(); - for (Batch batch : batches) { - batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); - batch.setTaskId(task.getTaskId()); + this.delete(entityWrapper); + //写入批次 + batches.forEach(batch -> { batch.setDevtypeId(task.getDevtypeId()); - batchIdlist.add(batch.getId()); - } + batch.setTaskId(task.getTaskId()); + }); this.insertBatch(batches); -// for (Batch batch : batchList) { -// batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); -// } -// -// //若批次号和数量不变只更新批次表 -// if (DeviceUtil.equalMap(batchMap, batchMap1)) { -// this.insertOrUpdateBatch(batches); -// } -// //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) -// else { -// -// //验证设备数量是否合格 -// ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); -// Map resultMap = DeviceUtil.validate(deviceType, batches, task); -// if (!Boolean.valueOf(resultMap.get("success").toString())) { -// return ResponseData.error(400, resultMap.get("msg").toString()); -// } -// //删除批次 -// EntityWrapper batchEntityWrapper = new EntityWrapper<>(); -// batchEntityWrapper.eq("task_id", task.getTaskId()); -// this.delete(batchEntityWrapper); -// //删除设备 -// EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); -// deviceEntityWrapper.in("batch_id", batchIdlist); -// deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); -// deviceService.delete(deviceEntityWrapper); -// -// //写入批次 -// this.insertBatch(batches); -// //写入设备 -// List deviceList = DeviceUtil.createDevCodes(deviceType, batches); -// deviceService.insertBatch(deviceList); -// } + //更新任务状态,已生成设备 + Task task1 = taskService.selectById(task.getTaskId()); + task1.setStatus("1"); + taskService.updateById(task1); } catch (Exception e) { e.printStackTrace(); } + } + + @Transactional(rollbackFor = Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + ProductDeviceType deviceType1 = deviceTypeService.selectById(task.getDevtypeId()); + //分为备货和非备货 + if ("1".equals(task.getIsstored()) || + (deviceType1 != null && deviceType1.getProductName().indexOf("电子标识器") != -1)) { + handleInventoryTask(batches, task); + } else if ("0".equals(task.getIsstored())) { + try { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap = new HashMap<>(); + Map batchMap1 = new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(), batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } +// this.insertBatch(batches); + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(), batch.getBatchCount()); + } + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + Map resultNumMap = validateNumber(deviceType, batches); + if (!Boolean.valueOf(resultNumMap.get("success").toString())) { + return ResponseData.error(400, resultNumMap.get("msg").toString()); + } + +// EntityWrapper batchEntityWrapper = new EntityWrapper<>(); +// batchEntityWrapper.eq("task_id", task.getTaskId()); +// List batches1 = this.selectList(batchEntityWrapper); +// if (batches1.size() > 0) { +// //删除批次 +// batches1.forEach(batch -> { +// this.deleteById(batch.getId()); +// }); +// //删除设备 +// EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); +// deviceEntityWrapper.in("batch_id", batchIdlist); +// deviceEntityWrapper.eq("devtype_id", task.getDevtypeId()); +// deviceService.delete(deviceEntityWrapper); +// //如果是备案合同的批次,应该恢复删除数量 +// batchList.forEach(batch -> { +// long count = batch.getBatchCount(); +// List batchList1 = getList(batch.getContractId(), deviceType.getId()); +// for (Batch batch1 : batchList1) { +// if (count < 1) break; +// if (count <= batch1.getBatchCount() - batch1.getRemaincount()) { +// batch1.setRemaincount(batch1.getRemaincount() + count); +// this.updateById(batch1); +// } else { +// batch1.setRemaincount(batch1.getBatchCount()); +// count = count - (batch1.getBatchCount() - batch1.getRemaincount()); +// this.updateById(batch1); +// } +// } +// }); +// } + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + //更新任务状态,已生成设备 + Task task1 = taskService.selectById(task.getTaskId()); + task1.setStatus("1"); + taskService.updateById(task1); + } + } catch (Exception e) { + e.printStackTrace(); + } + } return ResponseData.success(); } + public List getList(Long contractId, Long devtypeId) { + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("contract_id", contractId); + batchEntityWrapper.eq("devtype_id", devtypeId); + batchEntityWrapper.eq("batch_number", 0); + return selectList(batchEntityWrapper); + } + + public Map validateNumber(ProductDeviceType deviceType, List batches) { + + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + try { + List batchList = new ArrayList<>(); + Map contractMap = new HashMap<>(); + for (Batch batch : batches) { + contractMap.put(batch.getContractId(), contractMap.containsKey(batch.getContractId()) ? + (contractMap.get(batch.getContractId()) + batch.getBatchCount()) : + batch.getBatchCount()); + } + for (Map.Entry entry : contractMap.entrySet()) { + Long mapKey = entry.getKey(); + Long mapValue = entry.getValue(); + List batches1 = getList(mapKey, deviceType.getId()); + if (batches1.size() > 0) { + long count = 0; + for (Batch batch : batches1) { + count += batch.getRemaincount(); + } + if (mapValue > count) { + success = false; + msg = "备货数量不足,请重新填写"; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + } + batchList.addAll(batches1); + } + //验证通过后,减去备案合同数量, + for (Map.Entry entry : contractMap.entrySet()) { + Long mapKey = entry.getKey(); + Long mapValue = entry.getValue(); + long count = mapValue; + for (Batch batch1 : batchList) + if (count > 0 && batch1.getContractId() .equals( mapKey)) { + if (batch1.getRemaincount() >= count) { + batch1.setRemaincount(batch1.getRemaincount() - count); + this.updateById(batch1); + } else if (batch1.getRemaincount() > 0) { + batch1.setRemaincount(0L); + this.updateById(batch1); + count = count - batch1.getRemaincount(); + } + } + } + } catch ( + Exception e) { + e.printStackTrace(); + success = false; + msg = "验证失败"; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java index 526f3c3..605de24 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -2,19 +2,22 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; +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.system.dto.TaskStatusDto; -import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dao.TaskMapper; +import com.casic.missiles.modular.system.dto.TaskStatusDto; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; import com.casic.missiles.modular.task.service.ITaskService; -import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; import java.util.List; /** @@ -28,7 +31,11 @@ @Service public class TaskServiceImpl extends ServiceImpl implements ITaskService { private static String[] sendArr = {"生产中", "已发货", "待交付"}; + @Autowired + private IBatchService batchService; + @Autowired + private IDeviceService deviceService; @Override public List selectPageList(Page page, String keyword1, String keyword2, String keyword3, String keyword4) { @@ -95,4 +102,52 @@ } // return this.selectList(entityWrapper); } + + @Override + public void deleteTask(Long id) { + Task task =selectById(id); + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", id); + List batchList = batchService.selectList(batchEntityWrapper); + + if (batchList.size() > 0) { + List batchIdlist = new ArrayList<>(); + //删除批次 + batchList.forEach(batch -> { + batchIdlist.add(batch.getId()); + batchService.deleteById(batch.getId()); + }); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id", task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + //如果是备案合同的批次,应该恢复删除数量 + batchList.forEach(batch -> { + long count = batch.getBatchCount(); + List batchList1 = getList(batch.getContractId(), task.getDevtypeId()); + for (Batch batch1 : batchList1) { + if (count < 1) break; + if (count <= batch1.getBatchCount() - batch1.getRemaincount()) { + batch1.setRemaincount(batch1.getRemaincount() + count); + batchService.updateById(batch1); + } else { + batch1.setRemaincount(batch1.getBatchCount()); + count = count - (batch1.getBatchCount() - batch1.getRemaincount()); + batchService.updateById(batch1); + } + } + }); + } + //删除任务 + deleteById(id); + } + + public List getList(Long contractId, Long devtypeId) { + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("contract_id", contractId); + batchEntityWrapper.eq("batch_number", 0); + batchEntityWrapper.eq("devtype_id", devtypeId); + return batchService.selectList(batchEntityWrapper); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/util/DateUtils.java b/casic-device/src/main/java/com/casic/missiles/modular/util/DateUtils.java new file mode 100644 index 0000000..9b61a9e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/util/DateUtils.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.util; + + + +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +/** + * Created by Administrator on 2015/2/25. + */ +public class DateUtils { + public static SimpleDateFormat sdf_day = new SimpleDateFormat("yyyy-MM-dd"); + public static SimpleDateFormat sdf_day_time = new SimpleDateFormat("yyyyMMddhhmmss"); + public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + public static final SimpleDateFormat sdf5 = new SimpleDateFormat("HH:mm:ss"); + + + + /** + * 获取当年的第一天 + * @return + */ + public static Date getCurrYearFirst(){ + Calendar currCal=Calendar.getInstance(); + int currentYear = currCal.get(Calendar.YEAR); + return getYearFirst(currentYear); + } + + + /** + * 获取某年第一天日期 + * @param year 年份 + * @return Date + */ + public static Date getYearFirst(int year){ + Calendar calendar = Calendar.getInstance(); + calendar.clear(); + calendar.set(Calendar.YEAR, year); + Date currYearFirst = calendar.getTime(); + return currYearFirst; + } +} 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 2aa214e..2e07102 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 @@ -33,8 +33,13 @@ private static String[] sendArr = {"生产中", "已发货", "待交付"}; @Override - public List selectPageList(Page page, String projectName, Long devTypeId, String devcode, String pm) { - List deviceDtoList = this.baseMapper.selectPageList(page, projectName, devTypeId, devcode, pm); + public List selectPageList(Page page, String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = + this.baseMapper.selectPageList(page, 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])); @@ -42,37 +47,34 @@ return deviceDtoList; } -// @Override -// public void importDevice(List results) { -// List deviceList = new ArrayList<>(); -// for (Device device : results) { -// EntityWrapper wrapper = new EntityWrapper<>(); -// wrapper.eq("devcode", device.getDevcode()); -// List deviceList1 = this.baseMapper.selectList(wrapper); -// for (Device device1 : deviceList1) { -// device1.setIccid(device.getIccid()); -// device1.setImei(device.getImei()); -// device1.setIsSend(device.getIsSend()); -// device1.setDescription(device.getDescription()); -// deviceList.add(device1); -// } -// } -// if (deviceList != null && deviceList.size() > 0) { -// this.insertOrUpdateBatch(deviceList); -// } -// taskService.getUpdateList(); -// } - - - - - @Override public void importDevice(List results) { - this.insertBatch(results); + List deviceList = new ArrayList<>(); + for (Device device : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("devcode", device.getDevcode()); + List deviceList1 = this.baseMapper.selectList(wrapper); + for (Device device1 : deviceList1) { + device1.setIccid(device.getIccid()); + device1.setImei(device.getImei()); + device1.setIsSend(device.getIsSend()); + device1.setDescription(device.getDescription()); + deviceList.add(device1); + } + } + if (deviceList != null && deviceList.size() > 0) { + this.insertOrUpdateBatch(deviceList); + } + taskService.getUpdateList(); } +// @Override +// public void importDevice(List results) { +// this.insertBatch(results); +// } + + @Override public List reportExport(String projectName, Long devTypeId, @@ -96,4 +98,11 @@ public String getDevTypeBydevcode(String devcode) { return this.baseMapper.getDevTypeBydevcode(devcode); } + + @Override + public Device getDeviceByCode(String devcode){ + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.eq("devcode",devcode); + return this.selectOne(deviceEntityWrapper); + } } 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 7cb1f60..1ce57de 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 @@ -3,31 +3,40 @@ 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.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; 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.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.device.service.impl.DeviceServiceImpl; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; -import com.casic.missiles.modular.system.model.*; -import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.util.FileUtil; import com.casic.missiles.modular.task.service.ITaskService; import org.hswebframework.expands.office.excel.ExcelIO; 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.PathVariable; -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.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,13 +57,17 @@ @Autowired private ITaskService taskService; @Autowired - private IProductDeviceTypeService productDeviceTypeService; - @Autowired private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Resource + private ICommonFileService commonFileService; + @Value("${casic.file-download-path}") private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; + /** * 获取设备履历列表 */ @@ -86,8 +99,8 @@ 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():""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); } return new SuccessResponseData(super.packForBT(page)); } @@ -98,11 +111,36 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { + if (null == deviceService.getDeviceByCode(productRepairRecords.getDevcode())) { + return ResponseData.error(400, "设备编号不存在"); + } productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath1())){ +// productRepairRecords.setPhotopath1(productRepairRecords.getPhotopath1()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath2())){ +// productRepairRecords.setPhotopath2(productRepairRecords.getPhotopath2()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath3())){ +// productRepairRecords.setPhotopath3(productRepairRecords.getPhotopath3()); +// } +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.insert(productRepairRecords); Task task = taskService.selectById(productRepairRecords.getTaskid()); if ("1".equals(productRepairRecords.getIschange()) && null != task && @@ -110,6 +148,7 @@ if (task.getRemaincount() < 1) return ResponseData.error("备货任务单已无设备"); task.setRemaincount(task.getRemaincount() - 1); + taskService.insertOrUpdate(task); } return ResponseData.success(); } @@ -140,16 +179,30 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.updateById(productRepairRecords); return ResponseData.success(); } + /** * 设备履历详情 */ @@ -170,7 +223,7 @@ String devcode = httpServletRequest.getParameter("devcode"); String begTime = httpServletRequest.getParameter("begTime"); String endTime = httpServletRequest.getParameter("endTime"); - List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + List list = productRepairRecordsService.reportExport(devcode, begTime, endTime); FileInputStream fileInputStream = new FileInputStream(downloadPath + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); try { @@ -189,4 +242,72 @@ fileInputStream.close(); } } + + + /** + * 批量导入履历表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入履历信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("返修时间", "returntimeFmt"); + mapper.put("故障现象", "deviceProblem"); + mapper.put("检查人员", "checkName"); + mapper.put("故障定位", "deviceProblemLocation"); + mapper.put("原因分析", "analysis"); + mapper.put("归零措施", "zeroMeasures"); + mapper.put("维修人员", "repairName"); + mapper.put("完成时间", "finishtimeFmt"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductRepairRecords.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductRepairRecords repairRecords = row.getResult(); + + if (!ToolUtil.isAllEmpty(repairRecords.getDevcode(), repairRecords.getReturntimeFmt())) { + results.add(repairRecords); + } + } + } else { + row.shutdown(); + } + }); + productRepairRecordsService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入履历信息失败"); + } + return ResponseData.success(); + } + + + @RequestMapping(value = "/getPhoto") + 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)); + } + if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { + + 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)); + } + + } + } 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 15b9eb8..b1162d7 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 @@ -15,4 +15,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); + void 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 9c37938..4095754 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 @@ -8,13 +8,16 @@ import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductRepairRecords; import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IAccountService; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.sql.Timestamp; import java.util.List; /** @@ -34,6 +37,8 @@ private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Autowired + private IAccountService accountService; @Override public List reportExport(String devcode, String begTime, String endTime) { @@ -58,4 +63,25 @@ } return productRepairRecordsList; } + + + + @Override + public void importContract(List productRepairRecordsList) { + productRepairRecordsList.forEach(repairRecords -> { + if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + Account user = accountService.findUserByName(repairRecords.getCheckName()); + repairRecords.setCheckmanId(user!=null?user.getId():null); + } + if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + Account user = accountService.findUserByName(repairRecords.getRepairName()); + 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); + }); + this.insertBatch(productRepairRecordsList); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java index 5ee1e20..5d75451 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -11,18 +11,15 @@ import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ContractDict; -import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.model.Account; -import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.service.IAccountService; +import com.casic.missiles.modular.system.service.IContractService; import org.hswebframework.expands.office.excel.ExcelIO; 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.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -72,12 +69,13 @@ */ @RequestMapping(value = "/pageList") @ResponseBody - public Object listPage(String keyword1,String keyword2,String keyword3) { + public Object listPage(String keyword1, String keyword2, String keyword3) { Page page = new PageFactory().defaultPage(); - List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + List contractList = contractService.selectPageList(page, keyword1, keyword2, keyword3); page.setRecords(contractList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增 */ @@ -87,10 +85,10 @@ public Object add(Contract contract) { //合同编号一样,则覆盖 EntityWrapper contractEntityWrapper = new EntityWrapper<>(); - contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractEntityWrapper.eq("contract_number", contract.getContractNumber()); contractService.delete(contractEntityWrapper); - Account user=userService.findUserByName(contract.getPrincipal()); - contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.insert(contract); return ResponseData.success(); } @@ -122,15 +120,15 @@ @ResponseBody @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) public Object baseUpdate(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setContractNumber(contract.getContractNumber()); contract1.setContractName(contract.getContractName()); contract1.setContractAmount(contract.getContractAmount()); contract1.setContractContent(contract.getContractContent()); contract1.setContractFactory(contract.getContractFactory()); contract1.setPrincipal(contract.getPrincipal()); - Account user=userService.findUserByName(contract.getPrincipal()); - contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.updateById(contract1); return ResponseData.success(); } @@ -142,13 +140,14 @@ @ResponseBody @BussinessLog(value = "修改内网流程信息") public Object update(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setExternalCheckApply(contract.getExternalCheckApply()); contract1.setExternalContractApply(contract.getExternalContractApply()); contract1.setExternalProjectApply(contract.getExternalProjectApply()); contractService.updateById(contract1); return ResponseData.success(); } + /** * 导出合同列表 */ @@ -160,7 +159,7 @@ String keyword3 = httpServletRequest.getParameter("keyword3"); List list = contractService.reportExport(keyword1, keyword2, keyword3); FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + (list != null && list.size() > 0 ? "contractList.xlsx" : "contentNull.xlsx")); try { httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); @@ -223,13 +222,14 @@ /** * 根据id查详情 + * * @param id * @return */ @RequestMapping(value = "/selectById") @ResponseBody public Object detail(Long id) { - return ResponseData.success(200, + return ResponseData.success(200, "查询详情成功", contractService.selectById(id)); } @@ -245,4 +245,5 @@ List contractList = contractService.selectList(entityWrapper); return ResponseData.success(200, "", contractList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 509ad80..844ace2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -7,8 +7,12 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.service.IProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -16,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -33,6 +39,8 @@ @Autowired private IProjectService projectService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; /** * 获取项目管理列表 @@ -111,4 +119,25 @@ List projects = projectService.selectList(entityWrapper); return ResponseData.success(200, "", projects); } + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getDevTypes") + @ResponseBody + public Object getDevTypes(Long projectId) { + List deviceTypeDtos = new ArrayList<>(); + Project project = projectService.selectById(projectId); + if (ToolUtil.isNotEmpty(project) && ToolUtil.isNotEmpty(project.getDevTpeIds())) { + List productDeviceTypes = productDeviceTypeService. + selectBatchIds(Arrays.asList(project.getDevTpeIds().split(","))); + productDeviceTypes.forEach(productDeviceType -> { + DeviceTypeDto deviceTypeDto = new DeviceTypeDto(); + deviceTypeDto.setId(productDeviceType.getId()); + deviceTypeDto.setProductName(productDeviceType.getProductName()); + deviceTypeDtos.add(deviceTypeDto); + }); + } + return ResponseData.success(200, "", deviceTypeDtos); + } } 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 b57ce8e..0ca769c 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 @@ -21,7 +21,10 @@ @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); List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, 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 4a8d514..3426519 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 @@ -34,6 +34,8 @@ 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 as descn FROM product_device pd @@ -45,6 +47,8 @@ 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 @@ -55,11 +59,19 @@ 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 @@ -105,6 +117,7 @@ LEFT JOIN product_task pt ON pt.`id`=pb.`task_id` LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 @@ -113,5 +126,6 @@ LEFT JOIN product_device_type pdt ON pd.`devtype_id`=pdt.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml index 3efe420..537a52e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -34,6 +34,7 @@ pt.`devmode_id` AS devmodeId, pt.`devcount`, pt.`isstored`, + pt.`status`, pt.`isSend`, pc.`contract_number` AS contractNumber, pt.`devtype_id` AS devtypeId, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java index 43328de..85b7370 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -17,6 +17,8 @@ private String cardType; private String operator; private String descn ; + private String contractorNumber ; + private String productModel; public Long getId() { return id; @@ -145,4 +147,20 @@ public void setDescn(String descn) { this.descn = descn; } + + public String getContractorNumber() { + return contractorNumber; + } + + public void setContractorNumber(String contractorNumber) { + this.contractorNumber = contractorNumber; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java index 81516b7..63ba43e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -32,6 +32,7 @@ private Long devtypeId; @TableField("task_id") private Long taskId; + private Long remaincount; private Date createtime; @@ -91,6 +92,14 @@ this.devtypeId = devtypeId; } + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java index 893a1ed..8663e63 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -52,6 +52,7 @@ private String netFlow; @TableField("deptid") private String deptid; + private String isstored; public String getContractNumber() { return contractNumber; @@ -165,6 +166,14 @@ this.deptid = deptid; } + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java index eb0f678..c7ba0b6 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -91,6 +91,12 @@ private Long taskid; + private String photopath1; + + private String photopath2; + + private String photopath3; + @TableField(exist = false) private String returntimeFmt; @@ -105,6 +111,8 @@ @TableField(exist = false) private String checkName; + @TableField(exist = false) + private String repairName; public Long getId() { return id; @@ -250,7 +258,6 @@ this.zeroMeasures = zeroMeasures; } - public String getReturntimeFmt() { return returntimeFmt; } @@ -267,6 +274,38 @@ this.finishtimeFmt = finishtimeFmt; } + public String getPhotopath1() { + return photopath1; + } + + public void setPhotopath1(String photopath1) { + this.photopath1 = photopath1; + } + + public String getPhotopath2() { + return photopath2; + } + + public void setPhotopath2(String photopath2) { + this.photopath2 = photopath2; + } + + public String getPhotopath3() { + return photopath3; + } + + public void setPhotopath3(String photopath3) { + this.photopath3 = photopath3; + } + + public String getRepairName() { + return repairName; + } + + public void setRepairName(String repairName) { + this.repairName = repairName; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java index 00cbc92..89face9 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -29,6 +29,7 @@ @TableField("project_manager") private String projectManager; private String descn; + private String devTpeIds; @TableField("createtime") private Date createtime; @@ -81,6 +82,14 @@ this.createtime = createtime; } + public String getDevTpeIds() { + return devTpeIds; + } + + public void setDevTpeIds(String devTpeIds) { + this.devTpeIds = devTpeIds; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java index 4b610c4..c9f74d1 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -34,6 +34,7 @@ private Date deliveryTime; private String demand; private String isstored; + private String status; private String isSend; private String cardType; private String operator; @@ -205,6 +206,15 @@ this.operator = operator; } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java index 7497dc7..5a08962 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -1,11 +1,16 @@ package com.casic.missiles.modular.system.util; +import org.springframework.web.multipart.MultipartFile; + import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.UUID; public class FileUtil { public static File createFile(String path) throws IOException { @@ -56,4 +61,22 @@ return fileName; } + + public static String saveFile(MultipartFile file,String filePath) throws IOException { + if (!file.isEmpty()) { + String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java index 838dcf7..d6180a4 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -8,6 +8,7 @@ import com.casic.missiles.modular.system.model.Batch; import com.casic.missiles.modular.system.model.Task; import com.casic.missiles.modular.task.service.IBatchService; +import com.casic.missiles.modular.util.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; @@ -106,6 +107,7 @@ public Object getBatchNumber(Long devtypeId) { EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.ge("createtime", DateUtils.getCurrYearFirst()); entityWrapper.orderBy("id", false); Batch batch = batchService.selectOne(entityWrapper); return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); 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 e3e3348..5d82777 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 @@ -91,8 +91,9 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String taskId) { - taskService.deleteById(taskId); + public Object delete(@RequestParam Long taskId) { +// taskService.deleteById(taskId); + taskService.deleteTask(taskId); return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java index 43b8fed..a292b7f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -44,4 +44,6 @@ * @return */ void getUpdateList(); + + void deleteTask(Long id); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java index f6154ad..8d2e58e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -12,6 +12,7 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.DeviceUtil; import com.casic.missiles.modular.task.service.IBatchService; +import com.casic.missiles.modular.task.service.ITaskService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -36,62 +37,189 @@ private IProductDeviceTypeService deviceTypeService; @Autowired private IDeviceService deviceService; + @Autowired + private ITaskService taskService; - @Transactional(rollbackFor=Exception.class) - @Override - public ResponseData addBatchAndDevices(List batches, Task task) { - //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + + public void handleInventoryTask(List batches, Task task) { try { EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("task_id", task.getTaskId()); - List batchList = this.selectList(entityWrapper); - Map batchMap= new HashMap<>(); - Map batchMap1= new HashMap<>(); - List batchIdlist = new ArrayList<>(); - for (Batch batch : batches) { - batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); - batch.setTaskId(task.getTaskId()); + this.delete(entityWrapper); + //写入批次 + batches.forEach(batch -> { batch.setDevtypeId(task.getDevtypeId()); - batchIdlist.add(batch.getId()); - } + batch.setTaskId(task.getTaskId()); + }); this.insertBatch(batches); -// for (Batch batch : batchList) { -// batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); -// } -// -// //若批次号和数量不变只更新批次表 -// if (DeviceUtil.equalMap(batchMap, batchMap1)) { -// this.insertOrUpdateBatch(batches); -// } -// //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) -// else { -// -// //验证设备数量是否合格 -// ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); -// Map resultMap = DeviceUtil.validate(deviceType, batches, task); -// if (!Boolean.valueOf(resultMap.get("success").toString())) { -// return ResponseData.error(400, resultMap.get("msg").toString()); -// } -// //删除批次 -// EntityWrapper batchEntityWrapper = new EntityWrapper<>(); -// batchEntityWrapper.eq("task_id", task.getTaskId()); -// this.delete(batchEntityWrapper); -// //删除设备 -// EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); -// deviceEntityWrapper.in("batch_id", batchIdlist); -// deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); -// deviceService.delete(deviceEntityWrapper); -// -// //写入批次 -// this.insertBatch(batches); -// //写入设备 -// List deviceList = DeviceUtil.createDevCodes(deviceType, batches); -// deviceService.insertBatch(deviceList); -// } + //更新任务状态,已生成设备 + Task task1 = taskService.selectById(task.getTaskId()); + task1.setStatus("1"); + taskService.updateById(task1); } catch (Exception e) { e.printStackTrace(); } + } + + @Transactional(rollbackFor = Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + ProductDeviceType deviceType1 = deviceTypeService.selectById(task.getDevtypeId()); + //分为备货和非备货 + if ("1".equals(task.getIsstored()) || + (deviceType1 != null && deviceType1.getProductName().indexOf("电子标识器") != -1)) { + handleInventoryTask(batches, task); + } else if ("0".equals(task.getIsstored())) { + try { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap = new HashMap<>(); + Map batchMap1 = new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(), batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } +// this.insertBatch(batches); + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(), batch.getBatchCount()); + } + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + Map resultNumMap = validateNumber(deviceType, batches); + if (!Boolean.valueOf(resultNumMap.get("success").toString())) { + return ResponseData.error(400, resultNumMap.get("msg").toString()); + } + +// EntityWrapper batchEntityWrapper = new EntityWrapper<>(); +// batchEntityWrapper.eq("task_id", task.getTaskId()); +// List batches1 = this.selectList(batchEntityWrapper); +// if (batches1.size() > 0) { +// //删除批次 +// batches1.forEach(batch -> { +// this.deleteById(batch.getId()); +// }); +// //删除设备 +// EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); +// deviceEntityWrapper.in("batch_id", batchIdlist); +// deviceEntityWrapper.eq("devtype_id", task.getDevtypeId()); +// deviceService.delete(deviceEntityWrapper); +// //如果是备案合同的批次,应该恢复删除数量 +// batchList.forEach(batch -> { +// long count = batch.getBatchCount(); +// List batchList1 = getList(batch.getContractId(), deviceType.getId()); +// for (Batch batch1 : batchList1) { +// if (count < 1) break; +// if (count <= batch1.getBatchCount() - batch1.getRemaincount()) { +// batch1.setRemaincount(batch1.getRemaincount() + count); +// this.updateById(batch1); +// } else { +// batch1.setRemaincount(batch1.getBatchCount()); +// count = count - (batch1.getBatchCount() - batch1.getRemaincount()); +// this.updateById(batch1); +// } +// } +// }); +// } + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + //更新任务状态,已生成设备 + Task task1 = taskService.selectById(task.getTaskId()); + task1.setStatus("1"); + taskService.updateById(task1); + } + } catch (Exception e) { + e.printStackTrace(); + } + } return ResponseData.success(); } + public List getList(Long contractId, Long devtypeId) { + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("contract_id", contractId); + batchEntityWrapper.eq("devtype_id", devtypeId); + batchEntityWrapper.eq("batch_number", 0); + return selectList(batchEntityWrapper); + } + + public Map validateNumber(ProductDeviceType deviceType, List batches) { + + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + try { + List batchList = new ArrayList<>(); + Map contractMap = new HashMap<>(); + for (Batch batch : batches) { + contractMap.put(batch.getContractId(), contractMap.containsKey(batch.getContractId()) ? + (contractMap.get(batch.getContractId()) + batch.getBatchCount()) : + batch.getBatchCount()); + } + for (Map.Entry entry : contractMap.entrySet()) { + Long mapKey = entry.getKey(); + Long mapValue = entry.getValue(); + List batches1 = getList(mapKey, deviceType.getId()); + if (batches1.size() > 0) { + long count = 0; + for (Batch batch : batches1) { + count += batch.getRemaincount(); + } + if (mapValue > count) { + success = false; + msg = "备货数量不足,请重新填写"; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + } + batchList.addAll(batches1); + } + //验证通过后,减去备案合同数量, + for (Map.Entry entry : contractMap.entrySet()) { + Long mapKey = entry.getKey(); + Long mapValue = entry.getValue(); + long count = mapValue; + for (Batch batch1 : batchList) + if (count > 0 && batch1.getContractId() .equals( mapKey)) { + if (batch1.getRemaincount() >= count) { + batch1.setRemaincount(batch1.getRemaincount() - count); + this.updateById(batch1); + } else if (batch1.getRemaincount() > 0) { + batch1.setRemaincount(0L); + this.updateById(batch1); + count = count - batch1.getRemaincount(); + } + } + } + } catch ( + Exception e) { + e.printStackTrace(); + success = false; + msg = "验证失败"; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java index 526f3c3..605de24 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -2,19 +2,22 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; +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.system.dto.TaskStatusDto; -import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dao.TaskMapper; +import com.casic.missiles.modular.system.dto.TaskStatusDto; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; import com.casic.missiles.modular.task.service.ITaskService; -import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; import java.util.List; /** @@ -28,7 +31,11 @@ @Service public class TaskServiceImpl extends ServiceImpl implements ITaskService { private static String[] sendArr = {"生产中", "已发货", "待交付"}; + @Autowired + private IBatchService batchService; + @Autowired + private IDeviceService deviceService; @Override public List selectPageList(Page page, String keyword1, String keyword2, String keyword3, String keyword4) { @@ -95,4 +102,52 @@ } // return this.selectList(entityWrapper); } + + @Override + public void deleteTask(Long id) { + Task task =selectById(id); + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", id); + List batchList = batchService.selectList(batchEntityWrapper); + + if (batchList.size() > 0) { + List batchIdlist = new ArrayList<>(); + //删除批次 + batchList.forEach(batch -> { + batchIdlist.add(batch.getId()); + batchService.deleteById(batch.getId()); + }); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id", task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + //如果是备案合同的批次,应该恢复删除数量 + batchList.forEach(batch -> { + long count = batch.getBatchCount(); + List batchList1 = getList(batch.getContractId(), task.getDevtypeId()); + for (Batch batch1 : batchList1) { + if (count < 1) break; + if (count <= batch1.getBatchCount() - batch1.getRemaincount()) { + batch1.setRemaincount(batch1.getRemaincount() + count); + batchService.updateById(batch1); + } else { + batch1.setRemaincount(batch1.getBatchCount()); + count = count - (batch1.getBatchCount() - batch1.getRemaincount()); + batchService.updateById(batch1); + } + } + }); + } + //删除任务 + deleteById(id); + } + + public List getList(Long contractId, Long devtypeId) { + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("contract_id", contractId); + batchEntityWrapper.eq("batch_number", 0); + batchEntityWrapper.eq("devtype_id", devtypeId); + return batchService.selectList(batchEntityWrapper); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/util/DateUtils.java b/casic-device/src/main/java/com/casic/missiles/modular/util/DateUtils.java new file mode 100644 index 0000000..9b61a9e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/util/DateUtils.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.util; + + + +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +/** + * Created by Administrator on 2015/2/25. + */ +public class DateUtils { + public static SimpleDateFormat sdf_day = new SimpleDateFormat("yyyy-MM-dd"); + public static SimpleDateFormat sdf_day_time = new SimpleDateFormat("yyyyMMddhhmmss"); + public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + public static final SimpleDateFormat sdf5 = new SimpleDateFormat("HH:mm:ss"); + + + + /** + * 获取当年的第一天 + * @return + */ + public static Date getCurrYearFirst(){ + Calendar currCal=Calendar.getInstance(); + int currentYear = currCal.get(Calendar.YEAR); + return getYearFirst(currentYear); + } + + + /** + * 获取某年第一天日期 + * @param year 年份 + * @return Date + */ + public static Date getYearFirst(int year){ + Calendar calendar = Calendar.getInstance(); + calendar.clear(); + calendar.set(Calendar.YEAR, year); + Date currYearFirst = calendar.getTime(); + return currYearFirst; + } +} diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index eef713e..29ac078 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -1,18 +1,20 @@ server: port: 8083 + maxPostSize: -1 + maxHttpHeaderSize: 102400 ################### spring配置 ################### spring: datasource: - url: jdbc:mysql://111.198.10.15:11102/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + url: jdbc:mysql://192.168.0.212:3306/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull username: root - password: Casic203! + password: initial-size: 2 min-idle: 1 #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 - file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload\ + 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 + file-upload-path: C:\casic\tmp\ file-download-path: D:\tmp\ producerName: producer repairName: repair 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 46c47ee..255c269 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 @@ -80,6 +80,10 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(AppDeviceAdd appDeviceAdd) { + + if(ToolUtil.isEmpty(appDeviceAdd.getDescription())){ + appDeviceAdd.setDescription("安装设备"); + } //新增时验证设备编号是否已经存在 List appDeviceAddList = appDeviceAddService.getAppDevice(appDeviceAdd.getDevcode()); @@ -87,7 +91,7 @@ return ResponseData.error("设备编号:" + appDeviceAdd.getDevcode() + "已添加"); } if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())) { - appDeviceAdd.setInstalltime(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + appDeviceAdd.setInstalltime(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } appDeviceAddService.insert(appDeviceAdd); if (appDeviceLogService.getListByCode(appDeviceAdd.getDevcode()).size() == 0) { @@ -126,21 +130,20 @@ return ResponseData.success(); } -// @RequestMapping({"/fileUpload"}) -// @ResponseBody -// public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { -// String fileId = this.appDeviceAddService.saveFile(file); -// return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空"); -// } - - @RequestMapping({"/fileUpload"}) @ResponseBody - public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { - return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); - + public Object imageUpload(@RequestParam("file") MultipartFile file) throws IOException { + return ResponseData.success(appDeviceAddService.saveFile(file)); } + +// @RequestMapping({"/fileUpload"}) +// @ResponseBody +// public Object imageBase64Upload(@RequestBody(required =false) String fileBase64) throws IOException { +// return ResponseData.success(commonFileService.saveFileBase64Image(fileBase64)); +// +// } + @RequestMapping({"/getWellTypeList"}) @ResponseBody public Object getWellTypeList() { 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 7eb0dbc..8cb1867 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 @@ -60,7 +60,14 @@ query.like("devcode", devcode); } if (ToolUtil.isNotEmpty(installtimeFmt) && (!(specialStr.equals(installtimeFmt)))) { - query.eq("installtime",DateUtil.parse(installtimeFmt,"yyyy-MM-dd")); + 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")); + } + if (ToolUtil.isNotEmpty(endTime)) { + query.le("installtime", DateUtil.parseTime(endTime+" 23:23:59")); + } } if (ToolUtil.isNotEmpty(project) && (!(specialStr.equals(project)))) { query.eq("project", project); @@ -80,7 +87,7 @@ @ResponseBody public Object add(AppDeviceLog appDeviceLog) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceLog.setInstalltime(DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceLog.setInstalltime(DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } appDeviceLogService.insert(appDeviceLog); //添加运维日志的同时更新施工日志 @@ -139,7 +146,7 @@ String logs = ""; for (AppDeviceLog appDeviceLog : appDeviceLogList) { if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltime())) { - appDeviceLog.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceLog.getInstalltime())); + appDeviceLog.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceLog.getInstalltime())); } logs += appDeviceLog.getInstalltimeFmt() + ":" + appDeviceLog.getInstallperson() + "," + @@ -147,12 +154,12 @@ } if (null != appDeviceAdd) { if (ToolUtil.isNotEmpty(appDeviceAdd.getInstalltime())) { - appDeviceAdd.setInstalltimeFmt(DateUtils.sdf_day.format(appDeviceAdd.getInstalltime())); + appDeviceAdd.setInstalltimeFmt(DateUtils.sdf4.format(appDeviceAdd.getInstalltime())); } - appDeviceAdd.setLogs(logs); + appDeviceAdd.setLogs(logs.replace(";;",";")); } - if(appDeviceLogList.size()>0){ + if (appDeviceLogList.size() > 0) { appDeviceAdd.setPhotopath1(appDeviceLogList.get(0).getPhotopath1()); appDeviceAdd.setPhotopath2(appDeviceLogList.get(0).getPhotopath2()); appDeviceAdd.setPhotopath3(appDeviceLogList.get(0).getPhotopath3()); @@ -160,5 +167,25 @@ return new SuccessResponseData(appDeviceAdd); } + @RequestMapping(value = "/deletePhoto") + @ResponseBody + 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){ + AppDeviceLog appDeviceLog = appDeviceLogList.get(0); + if("0".equals(pathIndex)){ + appDeviceLog.setPhotopath1(""); + }else if("1".equals(pathIndex)){ + appDeviceLog.setPhotopath2(""); + }else if("2".equals(pathIndex)){ + appDeviceLog.setPhotopath3(""); + } + appDeviceLogService.updateById(appDeviceLog); + } + return ResponseData.success(); + } } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml index dba6207..7e09d77 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/dao/mapping/AppDeviceAddMapper.xml @@ -31,9 +31,8 @@ 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 1385e2c..602e246 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 @@ -341,7 +341,7 @@ appDeviceAdd.installheigt = appDeviceLog.getInstallheigt(); appDeviceAdd.installperson = appDeviceLog.getInstallperson(); if (ToolUtil.isNotEmpty(appDeviceLog.getInstalltimeFmt())) { - appDeviceAdd.installtime = (DateUtil.parseDate(appDeviceLog.getInstalltimeFmt())); + appDeviceAdd.installtime = (DateUtil.parseTime(appDeviceLog.getInstalltimeFmt())); } // appDeviceAdd.photopath = appDeviceLog.getPhotopath(); appDeviceAdd.factory = appDeviceLog.getFactory(); 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 2c4a7be..3feb3b3 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 @@ -322,7 +322,7 @@ this.installheigt = appDeviceAdd.getInstallheigt(); this.installperson = appDeviceAdd.getInstallperson(); if(ToolUtil.isNotEmpty(appDeviceAdd.getInstalltimeFmt())){ - this.installtime=(DateUtil.parseDate(appDeviceAdd.getInstalltimeFmt())); + this.installtime=(DateUtil.parseTime(appDeviceAdd.getInstalltimeFmt())); } // this.photopath = appDeviceAdd.getPhotopath(); this.photopath1 = appDeviceAdd.getPhotopath1(); 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 5a3ce82..fc3d0a4 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 @@ -27,8 +27,8 @@ @Service public class AppDeviceAddServiceImpl extends ServiceImpl implements IAppDeviceAddService { - @Value("${casic.file-download-path}") - private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; @Override public List getAppDevice(String devcode) { @@ -42,16 +42,16 @@ public String saveFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { String uuid = UUID.randomUUID().toString().replaceAll("-", ""); - String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); - File dir = new File(downloadPath + fileName); + 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)); -// return fileName.concat(File.separator).concat(filePrex); - return pathName; + return fileName.concat(File.separator).concat(filePrex); +// return pathName; } else { return null; } diff --git a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java index 852d420..c64d907 100644 --- a/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java +++ b/casic-app/src/main/java/com/casic/missiles/modular/app/util/DateUtils.java @@ -1,6 +1,10 @@ package com.casic.missiles.modular.app.util; + + import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; /** * Created by Administrator on 2015/2/25. @@ -20,4 +24,6 @@ dataString =str1+str2; return dataString; } + + } 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 94d7e40..ff8a381 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 @@ -62,9 +62,12 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String projectName, Long devTypeId, String devcode, String pm) { + public Object listPage(String projectName, Long devTypeId, + String devcode,String pm, + String productMode, String contractorNumber,String isSend ) { Page page = new PageFactory().defaultPage(); - List deviceDtoList = deviceService.selectPageList(page, projectName, devTypeId, devcode, pm); + List deviceDtoList = deviceService.selectPageList(page, projectName, + devTypeId, devcode, pm, productMode, contractorNumber,isSend); page.setRecords(deviceDtoList); return new SuccessResponseData(super.packForBT(page)); } @@ -112,48 +115,48 @@ /** * 批量导入设备详细信息列表 */ -// @RequestMapping(value = "/imp", method = RequestMethod.POST) -// @ResponseBody -// public Object batchImport(@RequestParam("fs") MultipartFile fs) { -// -// List results = new ArrayList<>(); -// //设置表头与字段映射,可通过反射获取 -// Map mapper = new HashMap<>(); -// mapper.put("设备编号", "devcode"); -// mapper.put("IMEI号", "imei"); -// mapper.put("ICCID号", "iccid"); -// mapper.put("设备状况", "isSend"); -// mapper.put("备注", "description"); -// try { -// try (InputStream in = fs.getInputStream()) { -// ExcelIO.read(in, mapper, Device.class, (row) -> { -// //仅读取第一个sheet -// if (row.getSheet() == 0) { -// if (row.getResult() != null) { -// Device device = row.getResult(); -// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) -// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { -// results.add(device); -// } -// } -// } else { -// row.shutdown(); -// } -// }); -// -// deviceService.importDevice(results); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return new ErrorResponseData("导入设备详情列表失败"); -// } -// -// return ResponseData.success(); -// } + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("IMEI号", "imei"); + mapper.put("ICCID号", "iccid"); + mapper.put("设备状况", "isSend"); + mapper.put("备注", "description"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, Device.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + Device device = row.getResult(); + //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) + if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { + results.add(device); + } + } + } else { + row.shutdown(); + } + }); + + deviceService.importDevice(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入设备详情列表失败"); + } + + return ResponseData.success(); + } /** - * 导出任务列表 + * 导出设备列表 */ @RequestMapping(value = "/listExp") public void reportExport(String projectName, @@ -195,49 +198,48 @@ } - - /** - * 用于前期设备批量导入 - */ - @RequestMapping(value = "/imp", method = RequestMethod.POST) - @ResponseBody - public Object batchImport(@RequestParam("fs") MultipartFile fs) { - - List results = new ArrayList<>(); - //设置表头与字段映射,可通过反射获取 - Map mapper = new HashMap<>(); - mapper.put("设备编号", "devcode"); - mapper.put("IMEI号", "imei"); - mapper.put("ICCID号", "iccid"); - mapper.put("设备状态", "isSend"); - mapper.put("批次id", "batchId"); - mapper.put("设备类型id", "devtypeId"); - mapper.put("备注", "description"); - try { - try (InputStream in = fs.getInputStream()) { - ExcelIO.read(in, mapper, Device.class, (row) -> { - //仅读取第一个sheet - if (row.getSheet() == 0) { - if (row.getResult() != null) { - Device device = row.getResult(); - //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) - if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { - results.add(device); - } - } - } else { - row.shutdown(); - } - }); - - deviceService.importDevice(results); - } - } catch (Exception e) { - e.printStackTrace(); - return new ErrorResponseData("导入设备信息失败"); - } - - return ResponseData.success(); - } +// /** +// * 用于前期设备批量导入 +// */ +// @RequestMapping(value = "/imp", method = RequestMethod.POST) +// @ResponseBody +// public Object batchImport(@RequestParam("fs") MultipartFile fs) { +// +// List results = new ArrayList<>(); +// //设置表头与字段映射,可通过反射获取 +// Map mapper = new HashMap<>(); +// mapper.put("设备编号", "devcode"); +// mapper.put("IMEI号", "imei"); +// mapper.put("ICCID号", "iccid"); +// mapper.put("设备状态", "isSend"); +// mapper.put("批次id", "batchId"); +// mapper.put("设备类型id", "devtypeId"); +// mapper.put("备注", "description"); +// try { +// try (InputStream in = fs.getInputStream()) { +// ExcelIO.read(in, mapper, Device.class, (row) -> { +// //仅读取第一个sheet +// if (row.getSheet() == 0) { +// if (row.getResult() != null) { +// Device device = row.getResult(); +// //过滤设备编号及设备名称都为空的数据 (判定为空行不导入该行) +// if (!ToolUtil.isAllEmpty(device.getDevcode(), device.getImei())) { +// results.add(device); +// } +// } +// } else { +// row.shutdown(); +// } +// }); +// +// deviceService.importDevice(results); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return new ErrorResponseData("导入设备信息失败"); +// } +// +// return ResponseData.success(); +// } } 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 1c59286..5f92336 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 @@ -10,7 +10,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author stylefeng123 @@ -20,6 +20,7 @@ /** * 批量导入设备详情列表 + * * @param results */ void importDevice(List results); @@ -28,14 +29,19 @@ String projectName, Long devTypeId, String devcode, - String pm); + String pm, + String productMode, + String contractorNumber, + String isSend); - List reportExport(String projectName, - Long devTypeId, - String devcode, - String pm); + List reportExport(String projectName, + Long devTypeId, + String devcode, + String pm); String getProjectBydevcode(String devcode); String getDevTypeBydevcode(String devcode); + + Device getDeviceByCode(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 2aa214e..2e07102 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 @@ -33,8 +33,13 @@ private static String[] sendArr = {"生产中", "已发货", "待交付"}; @Override - public List selectPageList(Page page, String projectName, Long devTypeId, String devcode, String pm) { - List deviceDtoList = this.baseMapper.selectPageList(page, projectName, devTypeId, devcode, pm); + public List selectPageList(Page page, String projectName, + Long devTypeId, String devcode, String pm, + String productMode, String contractorNumber, + String isSend) { + List deviceDtoList = + this.baseMapper.selectPageList(page, 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])); @@ -42,37 +47,34 @@ return deviceDtoList; } -// @Override -// public void importDevice(List results) { -// List deviceList = new ArrayList<>(); -// for (Device device : results) { -// EntityWrapper wrapper = new EntityWrapper<>(); -// wrapper.eq("devcode", device.getDevcode()); -// List deviceList1 = this.baseMapper.selectList(wrapper); -// for (Device device1 : deviceList1) { -// device1.setIccid(device.getIccid()); -// device1.setImei(device.getImei()); -// device1.setIsSend(device.getIsSend()); -// device1.setDescription(device.getDescription()); -// deviceList.add(device1); -// } -// } -// if (deviceList != null && deviceList.size() > 0) { -// this.insertOrUpdateBatch(deviceList); -// } -// taskService.getUpdateList(); -// } - - - - - @Override public void importDevice(List results) { - this.insertBatch(results); + List deviceList = new ArrayList<>(); + for (Device device : results) { + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("devcode", device.getDevcode()); + List deviceList1 = this.baseMapper.selectList(wrapper); + for (Device device1 : deviceList1) { + device1.setIccid(device.getIccid()); + device1.setImei(device.getImei()); + device1.setIsSend(device.getIsSend()); + device1.setDescription(device.getDescription()); + deviceList.add(device1); + } + } + if (deviceList != null && deviceList.size() > 0) { + this.insertOrUpdateBatch(deviceList); + } + taskService.getUpdateList(); } +// @Override +// public void importDevice(List results) { +// this.insertBatch(results); +// } + + @Override public List reportExport(String projectName, Long devTypeId, @@ -96,4 +98,11 @@ public String getDevTypeBydevcode(String devcode) { return this.baseMapper.getDevTypeBydevcode(devcode); } + + @Override + public Device getDeviceByCode(String devcode){ + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.eq("devcode",devcode); + return this.selectOne(deviceEntityWrapper); + } } 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 7cb1f60..1ce57de 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 @@ -3,31 +3,40 @@ 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.response.ErrorResponseData; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.core.common.annotion.BussinessLog; 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.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.device.service.IDeviceService; +import com.casic.missiles.modular.device.service.impl.DeviceServiceImpl; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; -import com.casic.missiles.modular.system.model.*; -import com.casic.missiles.modular.system.service.IProductDeviceTypeService; +import com.casic.missiles.modular.system.model.ProductRepairRecords; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.util.FileUtil; import com.casic.missiles.modular.task.service.ITaskService; import org.hswebframework.expands.office.excel.ExcelIO; 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.PathVariable; -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.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,13 +57,17 @@ @Autowired private ITaskService taskService; @Autowired - private IProductDeviceTypeService productDeviceTypeService; - @Autowired private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Resource + private ICommonFileService commonFileService; + @Value("${casic.file-download-path}") private String downloadPath; + @Value("${casic.file-upload-path}") + private String filePath; + /** * 获取设备履历列表 */ @@ -86,8 +99,8 @@ 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():""); + User user = permissionService.getUserById(productRepairRecords.getRepairmenId().toString(), "1"); + productRepairRecords.setCheckName(null != user ? user.getName() : ""); } return new SuccessResponseData(super.packForBT(page)); } @@ -98,11 +111,36 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { + if (null == deviceService.getDeviceByCode(productRepairRecords.getDevcode())) { + return ResponseData.error(400, "设备编号不存在"); + } productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath1())){ +// productRepairRecords.setPhotopath1(productRepairRecords.getPhotopath1()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath2())){ +// productRepairRecords.setPhotopath2(productRepairRecords.getPhotopath2()); +// } +// if(ToolUtil.isNotEmpty(productRepairRecords.getPhotopath3())){ +// productRepairRecords.setPhotopath3(productRepairRecords.getPhotopath3()); +// } +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.insert(productRepairRecords); Task task = taskService.selectById(productRepairRecords.getTaskid()); if ("1".equals(productRepairRecords.getIschange()) && null != task && @@ -110,6 +148,7 @@ if (task.getRemaincount() < 1) return ResponseData.error("备货任务单已无设备"); task.setRemaincount(task.getRemaincount() - 1); + taskService.insertOrUpdate(task); } return ResponseData.success(); } @@ -140,16 +179,30 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(ProductRepairRecords productRepairRecords, - String returntimeFmt, String finishtimeFmt) { + String returntimeFmt, String finishtimeFmt +// MultipartFile file1Base64, +// MultipartFile file2Base64, +// MultipartFile file3Base64 + ) throws IOException { productRepairRecords.setReturntime(ToolUtil.isNotEmpty(returntimeFmt) ? Timestamp.valueOf(returntimeFmt) : null); productRepairRecords.setFinishtime(ToolUtil.isNotEmpty(finishtimeFmt) ? Timestamp.valueOf(finishtimeFmt) : null); +// if (ToolUtil.isNotEmpty(file1Base64)) { +// productRepairRecords.setPhotopath1(FileUtil.saveFile(file1Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file2Base64)) { +// productRepairRecords.setPhotopath2(FileUtil.saveFile(file2Base64, filePath)); +// } +// if (ToolUtil.isNotEmpty(file3Base64)) { +// productRepairRecords.setPhotopath3(FileUtil.saveFile(file3Base64, filePath)); +// } productRepairRecordsService.updateById(productRepairRecords); return ResponseData.success(); } + /** * 设备履历详情 */ @@ -170,7 +223,7 @@ String devcode = httpServletRequest.getParameter("devcode"); String begTime = httpServletRequest.getParameter("begTime"); String endTime = httpServletRequest.getParameter("endTime"); - List list = productRepairRecordsService.reportExport(devcode, begTime,endTime); + List list = productRepairRecordsService.reportExport(devcode, begTime, endTime); FileInputStream fileInputStream = new FileInputStream(downloadPath + (list != null && list.size() > 0 ? "repairsList.xlsx" : "contentNull.xlsx")); try { @@ -189,4 +242,72 @@ fileInputStream.close(); } } + + + /** + * 批量导入履历表 + */ + @RequestMapping(value = "/imp", method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "批量导入履历信息") + public Object batchImport(@RequestParam("fs") MultipartFile fs) { + + List results = new ArrayList<>(); + //设置表头与字段映射,可通过反射获取 + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("返修时间", "returntimeFmt"); + mapper.put("故障现象", "deviceProblem"); + mapper.put("检查人员", "checkName"); + mapper.put("故障定位", "deviceProblemLocation"); + mapper.put("原因分析", "analysis"); + mapper.put("归零措施", "zeroMeasures"); + mapper.put("维修人员", "repairName"); + mapper.put("完成时间", "finishtimeFmt"); + try { + try (InputStream in = fs.getInputStream()) { + ExcelIO.read(in, mapper, ProductRepairRecords.class, (row) -> { + //仅读取第一个sheet + if (row.getSheet() == 0) { + if (row.getResult() != null) { + ProductRepairRecords repairRecords = row.getResult(); + + if (!ToolUtil.isAllEmpty(repairRecords.getDevcode(), repairRecords.getReturntimeFmt())) { + results.add(repairRecords); + } + } + } else { + row.shutdown(); + } + }); + productRepairRecordsService.importContract(results); + } + } catch (Exception e) { + e.printStackTrace(); + return new ErrorResponseData("导入履历信息失败"); + } + return ResponseData.success(); + } + + + @RequestMapping(value = "/getPhoto") + 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)); + } + if (ToolUtil.isNotEmpty(repairRecords.getPhotopath2())) { + + 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)); + } + + } + } 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 15b9eb8..b1162d7 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 @@ -15,4 +15,5 @@ */ public interface IProductRepairRecordsService extends IService { List reportExport(String devcode, String begTime, String endTime); + void 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 9c37938..4095754 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 @@ -8,13 +8,16 @@ import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.repairs.service.IProductRepairRecordsService; import com.casic.missiles.modular.system.dao.ProductRepairRecordsMapper; +import com.casic.missiles.modular.system.model.Account; import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.ProductRepairRecords; import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.modular.system.service.IAccountService; import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.sql.Timestamp; import java.util.List; /** @@ -34,6 +37,8 @@ private IDeviceService deviceService; @Autowired private ICommonPermissionService permissionService; + @Autowired + private IAccountService accountService; @Override public List reportExport(String devcode, String begTime, String endTime) { @@ -58,4 +63,25 @@ } return productRepairRecordsList; } + + + + @Override + public void importContract(List productRepairRecordsList) { + productRepairRecordsList.forEach(repairRecords -> { + if(ToolUtil.isNotEmpty(repairRecords.getCheckName())){ + Account user = accountService.findUserByName(repairRecords.getCheckName()); + repairRecords.setCheckmanId(user!=null?user.getId():null); + } + if(ToolUtil.isNotEmpty(repairRecords.getRepairName())){ + Account user = accountService.findUserByName(repairRecords.getRepairName()); + 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); + }); + this.insertBatch(productRepairRecordsList); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java index 5ee1e20..5d75451 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ContractController.java @@ -11,18 +11,15 @@ import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ContractDict; -import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.model.Account; -import com.casic.missiles.modular.system.service.IContractService; +import com.casic.missiles.modular.system.model.Contract; import com.casic.missiles.modular.system.service.IAccountService; +import com.casic.missiles.modular.system.service.IContractService; import org.hswebframework.expands.office.excel.ExcelIO; 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.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -72,12 +69,13 @@ */ @RequestMapping(value = "/pageList") @ResponseBody - public Object listPage(String keyword1,String keyword2,String keyword3) { + public Object listPage(String keyword1, String keyword2, String keyword3) { Page page = new PageFactory().defaultPage(); - List contractList = contractService.selectPageList(page,keyword1, keyword2, keyword3); + List contractList = contractService.selectPageList(page, keyword1, keyword2, keyword3); page.setRecords(contractList); return new SuccessResponseData(super.packForBT(page)); } + /** * 新增 */ @@ -87,10 +85,10 @@ public Object add(Contract contract) { //合同编号一样,则覆盖 EntityWrapper contractEntityWrapper = new EntityWrapper<>(); - contractEntityWrapper.eq("contract_number",contract.getContractNumber()); + contractEntityWrapper.eq("contract_number", contract.getContractNumber()); contractService.delete(contractEntityWrapper); - Account user=userService.findUserByName(contract.getPrincipal()); - contract.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.insert(contract); return ResponseData.success(); } @@ -122,15 +120,15 @@ @ResponseBody @BussinessLog(value = "编辑合同信息", key = CONTRACT_ADD_LOG_KEY, dict = ContractDict.class) public Object baseUpdate(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setContractNumber(contract.getContractNumber()); contract1.setContractName(contract.getContractName()); contract1.setContractAmount(contract.getContractAmount()); contract1.setContractContent(contract.getContractContent()); contract1.setContractFactory(contract.getContractFactory()); contract1.setPrincipal(contract.getPrincipal()); - Account user=userService.findUserByName(contract.getPrincipal()); - contract1.setDeptid(null!=user&&user.getId()!=null?user.getDeptid().toString():""); + Account user = userService.findUserByName(contract.getPrincipal()); + contract1.setDeptid(null != user && user.getId() != null ? user.getDeptid().toString() : ""); contractService.updateById(contract1); return ResponseData.success(); } @@ -142,13 +140,14 @@ @ResponseBody @BussinessLog(value = "修改内网流程信息") public Object update(Contract contract) { - Contract contract1=contractService.selectById(contract.getId()); + Contract contract1 = contractService.selectById(contract.getId()); contract1.setExternalCheckApply(contract.getExternalCheckApply()); contract1.setExternalContractApply(contract.getExternalContractApply()); contract1.setExternalProjectApply(contract.getExternalProjectApply()); contractService.updateById(contract1); return ResponseData.success(); } + /** * 导出合同列表 */ @@ -160,7 +159,7 @@ String keyword3 = httpServletRequest.getParameter("keyword3"); List list = contractService.reportExport(keyword1, keyword2, keyword3); FileInputStream fileInputStream = new FileInputStream(downloadPath + - (list!=null&&list.size()>0?"contractList.xlsx":"contentNull.xlsx")); + (list != null && list.size() > 0 ? "contractList.xlsx" : "contentNull.xlsx")); try { httpServletResponse.setContentType("application/octet-stream"); httpServletResponse.addHeader("Content-Disposition", " attachment;filename=" + "contractList.xlsx"); @@ -223,13 +222,14 @@ /** * 根据id查详情 + * * @param id * @return */ @RequestMapping(value = "/selectById") @ResponseBody public Object detail(Long id) { - return ResponseData.success(200, + return ResponseData.success(200, "查询详情成功", contractService.selectById(id)); } @@ -245,4 +245,5 @@ List contractList = contractService.selectList(entityWrapper); return ResponseData.success(200, "", contractList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java index 509ad80..844ace2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/ProjectController.java @@ -7,8 +7,12 @@ import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dict.ProjectDict; +import com.casic.missiles.modular.system.dto.DeviceTypeDto; +import com.casic.missiles.modular.system.model.ProductDeviceType; import com.casic.missiles.modular.system.model.Project; +import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.service.IProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -16,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import static com.casic.missiles.modular.system.dict.ProjectDict.PROJECT_ADD_LOG_KEY; @@ -33,6 +39,8 @@ @Autowired private IProjectService projectService; + @Autowired + private IProductDeviceTypeService productDeviceTypeService; /** * 获取项目管理列表 @@ -111,4 +119,25 @@ List projects = projectService.selectList(entityWrapper); return ResponseData.success(200, "", projects); } + + /** + * 项目下拉接口 + */ + @RequestMapping(value = "/getDevTypes") + @ResponseBody + public Object getDevTypes(Long projectId) { + List deviceTypeDtos = new ArrayList<>(); + Project project = projectService.selectById(projectId); + if (ToolUtil.isNotEmpty(project) && ToolUtil.isNotEmpty(project.getDevTpeIds())) { + List productDeviceTypes = productDeviceTypeService. + selectBatchIds(Arrays.asList(project.getDevTpeIds().split(","))); + productDeviceTypes.forEach(productDeviceType -> { + DeviceTypeDto deviceTypeDto = new DeviceTypeDto(); + deviceTypeDto.setId(productDeviceType.getId()); + deviceTypeDto.setProductName(productDeviceType.getProductName()); + deviceTypeDtos.add(deviceTypeDto); + }); + } + return ResponseData.success(200, "", deviceTypeDtos); + } } 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 b57ce8e..0ca769c 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 @@ -21,7 +21,10 @@ @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); List reportExport(@Param("projectName") String projectName, @Param("devTypeId") Long devTypeId, 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 4a8d514..3426519 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 @@ -34,6 +34,8 @@ 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 as descn FROM product_device pd @@ -45,6 +47,8 @@ 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 @@ -55,11 +59,19 @@ 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 @@ -105,6 +117,7 @@ LEFT JOIN product_task pt ON pt.`id`=pb.`task_id` LEFT JOIN product_project pp ON pt.`project_id`=pp.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 @@ -113,5 +126,6 @@ LEFT JOIN product_device_type pdt ON pd.`devtype_id`=pdt.`id` WHERE pd.`devcode` = #{devcode} + LIMIT 1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml index 3efe420..537a52e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/TaskMapper.xml @@ -34,6 +34,7 @@ pt.`devmode_id` AS devmodeId, pt.`devcount`, pt.`isstored`, + pt.`status`, pt.`isSend`, pc.`contract_number` AS contractNumber, pt.`devtype_id` AS devtypeId, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java index 43328de..85b7370 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dto/DeviceDto.java @@ -17,6 +17,8 @@ private String cardType; private String operator; private String descn ; + private String contractorNumber ; + private String productModel; public Long getId() { return id; @@ -145,4 +147,20 @@ public void setDescn(String descn) { this.descn = descn; } + + public String getContractorNumber() { + return contractorNumber; + } + + public void setContractorNumber(String contractorNumber) { + this.contractorNumber = contractorNumber; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java index 81516b7..63ba43e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Batch.java @@ -32,6 +32,7 @@ private Long devtypeId; @TableField("task_id") private Long taskId; + private Long remaincount; private Date createtime; @@ -91,6 +92,14 @@ this.devtypeId = devtypeId; } + public Long getRemaincount() { + return remaincount; + } + + public void setRemaincount(Long remaincount) { + this.remaincount = remaincount; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java index 893a1ed..8663e63 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Contract.java @@ -52,6 +52,7 @@ private String netFlow; @TableField("deptid") private String deptid; + private String isstored; public String getContractNumber() { return contractNumber; @@ -165,6 +166,14 @@ this.deptid = deptid; } + public String getIsstored() { + return isstored; + } + + public void setIsstored(String isstored) { + this.isstored = isstored; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java index eb0f678..c7ba0b6 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/ProductRepairRecords.java @@ -91,6 +91,12 @@ private Long taskid; + private String photopath1; + + private String photopath2; + + private String photopath3; + @TableField(exist = false) private String returntimeFmt; @@ -105,6 +111,8 @@ @TableField(exist = false) private String checkName; + @TableField(exist = false) + private String repairName; public Long getId() { return id; @@ -250,7 +258,6 @@ this.zeroMeasures = zeroMeasures; } - public String getReturntimeFmt() { return returntimeFmt; } @@ -267,6 +274,38 @@ this.finishtimeFmt = finishtimeFmt; } + public String getPhotopath1() { + return photopath1; + } + + public void setPhotopath1(String photopath1) { + this.photopath1 = photopath1; + } + + public String getPhotopath2() { + return photopath2; + } + + public void setPhotopath2(String photopath2) { + this.photopath2 = photopath2; + } + + public String getPhotopath3() { + return photopath3; + } + + public void setPhotopath3(String photopath3) { + this.photopath3 = photopath3; + } + + public String getRepairName() { + return repairName; + } + + public void setRepairName(String repairName) { + this.repairName = repairName; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java index 00cbc92..89face9 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Project.java @@ -29,6 +29,7 @@ @TableField("project_manager") private String projectManager; private String descn; + private String devTpeIds; @TableField("createtime") private Date createtime; @@ -81,6 +82,14 @@ this.createtime = createtime; } + public String getDevTpeIds() { + return devTpeIds; + } + + public void setDevTpeIds(String devTpeIds) { + this.devTpeIds = devTpeIds; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java index 4b610c4..c9f74d1 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/model/Task.java @@ -34,6 +34,7 @@ private Date deliveryTime; private String demand; private String isstored; + private String status; private String isSend; private String cardType; private String operator; @@ -205,6 +206,15 @@ this.operator = operator; } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + @Override protected Serializable pkVal() { return this.id; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java index 7497dc7..5a08962 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/util/FileUtil.java @@ -1,11 +1,16 @@ package com.casic.missiles.modular.system.util; +import org.springframework.web.multipart.MultipartFile; + import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.UUID; public class FileUtil { public static File createFile(String path) throws IOException { @@ -56,4 +61,22 @@ return fileName; } + + public static String saveFile(MultipartFile file,String filePath) throws IOException { + if (!file.isEmpty()) { + String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + String fileName = (new SimpleDateFormat("yyyy-MM")).format(new Date()); + File dir = new File(filePath + fileName); + if (!dir.exists()) { + dir.mkdirs(); + } + + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + return fileName.concat(File.separator).concat(filePrex); + } else { + return null; + } + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java index 838dcf7..d6180a4 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/controller/BatchController.java @@ -8,6 +8,7 @@ import com.casic.missiles.modular.system.model.Batch; import com.casic.missiles.modular.system.model.Task; import com.casic.missiles.modular.task.service.IBatchService; +import com.casic.missiles.modular.util.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; @@ -106,6 +107,7 @@ public Object getBatchNumber(Long devtypeId) { EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("devtype_id", devtypeId); + entityWrapper.ge("createtime", DateUtils.getCurrYearFirst()); entityWrapper.orderBy("id", false); Batch batch = batchService.selectOne(entityWrapper); return ResponseData.success(200, "", batch != null ? batch.getBatchNumber() + 1 : 1); 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 e3e3348..5d82777 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 @@ -91,8 +91,9 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String taskId) { - taskService.deleteById(taskId); + public Object delete(@RequestParam Long taskId) { +// taskService.deleteById(taskId); + taskService.deleteTask(taskId); return ResponseData.success(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java index 43b8fed..a292b7f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/ITaskService.java @@ -44,4 +44,6 @@ * @return */ void getUpdateList(); + + void deleteTask(Long id); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java index f6154ad..8d2e58e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/BatchServiceImpl.java @@ -12,6 +12,7 @@ import com.casic.missiles.modular.system.service.IProductDeviceTypeService; import com.casic.missiles.modular.system.util.DeviceUtil; import com.casic.missiles.modular.task.service.IBatchService; +import com.casic.missiles.modular.task.service.ITaskService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -36,62 +37,189 @@ private IProductDeviceTypeService deviceTypeService; @Autowired private IDeviceService deviceService; + @Autowired + private ITaskService taskService; - @Transactional(rollbackFor=Exception.class) - @Override - public ResponseData addBatchAndDevices(List batches, Task task) { - //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + + public void handleInventoryTask(List batches, Task task) { try { EntityWrapper entityWrapper = new EntityWrapper<>(); entityWrapper.eq("task_id", task.getTaskId()); - List batchList = this.selectList(entityWrapper); - Map batchMap= new HashMap<>(); - Map batchMap1= new HashMap<>(); - List batchIdlist = new ArrayList<>(); - for (Batch batch : batches) { - batchMap.put(batch.getBatchNumber(),batch.getBatchCount()); - batch.setTaskId(task.getTaskId()); + this.delete(entityWrapper); + //写入批次 + batches.forEach(batch -> { batch.setDevtypeId(task.getDevtypeId()); - batchIdlist.add(batch.getId()); - } + batch.setTaskId(task.getTaskId()); + }); this.insertBatch(batches); -// for (Batch batch : batchList) { -// batchMap1.put(batch.getBatchNumber(),batch.getBatchCount()); -// } -// -// //若批次号和数量不变只更新批次表 -// if (DeviceUtil.equalMap(batchMap, batchMap1)) { -// this.insertOrUpdateBatch(batches); -// } -// //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) -// else { -// -// //验证设备数量是否合格 -// ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); -// Map resultMap = DeviceUtil.validate(deviceType, batches, task); -// if (!Boolean.valueOf(resultMap.get("success").toString())) { -// return ResponseData.error(400, resultMap.get("msg").toString()); -// } -// //删除批次 -// EntityWrapper batchEntityWrapper = new EntityWrapper<>(); -// batchEntityWrapper.eq("task_id", task.getTaskId()); -// this.delete(batchEntityWrapper); -// //删除设备 -// EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); -// deviceEntityWrapper.in("batch_id", batchIdlist); -// deviceEntityWrapper.eq("devtype_id",task.getDevtypeId()); -// deviceService.delete(deviceEntityWrapper); -// -// //写入批次 -// this.insertBatch(batches); -// //写入设备 -// List deviceList = DeviceUtil.createDevCodes(deviceType, batches); -// deviceService.insertBatch(deviceList); -// } + //更新任务状态,已生成设备 + Task task1 = taskService.selectById(task.getTaskId()); + task1.setStatus("1"); + taskService.updateById(task1); } catch (Exception e) { e.printStackTrace(); } + } + + @Transactional(rollbackFor = Exception.class) + @Override + public ResponseData addBatchAndDevices(List batches, Task task) { + ProductDeviceType deviceType1 = deviceTypeService.selectById(task.getDevtypeId()); + //分为备货和非备货 + if ("1".equals(task.getIsstored()) || + (deviceType1 != null && deviceType1.getProductName().indexOf("电子标识器") != -1)) { + handleInventoryTask(batches, task); + } else if ("0".equals(task.getIsstored())) { + try { + //提交前先验证是否已经存在,若存在且批次号或每批数量改变先删除 + EntityWrapper entityWrapper = new EntityWrapper<>(); + entityWrapper.eq("task_id", task.getTaskId()); + List batchList = this.selectList(entityWrapper); + Map batchMap = new HashMap<>(); + Map batchMap1 = new HashMap<>(); + List batchIdlist = new ArrayList<>(); + for (Batch batch : batches) { + batchMap.put(batch.getBatchNumber(), batch.getBatchCount()); + batch.setTaskId(task.getTaskId()); + batch.setDevtypeId(task.getDevtypeId()); + batchIdlist.add(batch.getId()); + } +// this.insertBatch(batches); + for (Batch batch : batchList) { + batchMap1.put(batch.getBatchNumber(), batch.getBatchCount()); + } + //若批次号和数量不变只更新批次表 + if (DeviceUtil.equalMap(batchMap, batchMap1)) { + this.insertOrUpdateBatch(batches); + } + //若批次号和数量更新,更新设备表(删除批次相关的设备后,写入新的设备) + else { + //验证设备数量是否合格 + ProductDeviceType deviceType = deviceTypeService.selectDeviceTypeByModel(task.getDevmodeId()); + Map resultMap = DeviceUtil.validate(deviceType, batches, task); + if (!Boolean.valueOf(resultMap.get("success").toString())) { + return ResponseData.error(400, resultMap.get("msg").toString()); + } + Map resultNumMap = validateNumber(deviceType, batches); + if (!Boolean.valueOf(resultNumMap.get("success").toString())) { + return ResponseData.error(400, resultNumMap.get("msg").toString()); + } + +// EntityWrapper batchEntityWrapper = new EntityWrapper<>(); +// batchEntityWrapper.eq("task_id", task.getTaskId()); +// List batches1 = this.selectList(batchEntityWrapper); +// if (batches1.size() > 0) { +// //删除批次 +// batches1.forEach(batch -> { +// this.deleteById(batch.getId()); +// }); +// //删除设备 +// EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); +// deviceEntityWrapper.in("batch_id", batchIdlist); +// deviceEntityWrapper.eq("devtype_id", task.getDevtypeId()); +// deviceService.delete(deviceEntityWrapper); +// //如果是备案合同的批次,应该恢复删除数量 +// batchList.forEach(batch -> { +// long count = batch.getBatchCount(); +// List batchList1 = getList(batch.getContractId(), deviceType.getId()); +// for (Batch batch1 : batchList1) { +// if (count < 1) break; +// if (count <= batch1.getBatchCount() - batch1.getRemaincount()) { +// batch1.setRemaincount(batch1.getRemaincount() + count); +// this.updateById(batch1); +// } else { +// batch1.setRemaincount(batch1.getBatchCount()); +// count = count - (batch1.getBatchCount() - batch1.getRemaincount()); +// this.updateById(batch1); +// } +// } +// }); +// } + //写入批次 + this.insertBatch(batches); + //写入设备 + List deviceList = DeviceUtil.createDevCodes(deviceType, batches); + deviceService.insertBatch(deviceList); + //更新任务状态,已生成设备 + Task task1 = taskService.selectById(task.getTaskId()); + task1.setStatus("1"); + taskService.updateById(task1); + } + } catch (Exception e) { + e.printStackTrace(); + } + } return ResponseData.success(); } + public List getList(Long contractId, Long devtypeId) { + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("contract_id", contractId); + batchEntityWrapper.eq("devtype_id", devtypeId); + batchEntityWrapper.eq("batch_number", 0); + return selectList(batchEntityWrapper); + } + + public Map validateNumber(ProductDeviceType deviceType, List batches) { + + Map resultMap = new HashMap<>(); + boolean success = true; + String msg = ""; + try { + List batchList = new ArrayList<>(); + Map contractMap = new HashMap<>(); + for (Batch batch : batches) { + contractMap.put(batch.getContractId(), contractMap.containsKey(batch.getContractId()) ? + (contractMap.get(batch.getContractId()) + batch.getBatchCount()) : + batch.getBatchCount()); + } + for (Map.Entry entry : contractMap.entrySet()) { + Long mapKey = entry.getKey(); + Long mapValue = entry.getValue(); + List batches1 = getList(mapKey, deviceType.getId()); + if (batches1.size() > 0) { + long count = 0; + for (Batch batch : batches1) { + count += batch.getRemaincount(); + } + if (mapValue > count) { + success = false; + msg = "备货数量不足,请重新填写"; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + } + batchList.addAll(batches1); + } + //验证通过后,减去备案合同数量, + for (Map.Entry entry : contractMap.entrySet()) { + Long mapKey = entry.getKey(); + Long mapValue = entry.getValue(); + long count = mapValue; + for (Batch batch1 : batchList) + if (count > 0 && batch1.getContractId() .equals( mapKey)) { + if (batch1.getRemaincount() >= count) { + batch1.setRemaincount(batch1.getRemaincount() - count); + this.updateById(batch1); + } else if (batch1.getRemaincount() > 0) { + batch1.setRemaincount(0L); + this.updateById(batch1); + count = count - batch1.getRemaincount(); + } + } + } + } catch ( + Exception e) { + e.printStackTrace(); + success = false; + msg = "验证失败"; + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } + resultMap.put("success", success); + resultMap.put("msg", msg); + return resultMap; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java index 526f3c3..605de24 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/task/service/impl/TaskServiceImpl.java @@ -2,19 +2,22 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; +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.system.dto.TaskStatusDto; -import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.device.service.IDeviceService; import com.casic.missiles.modular.system.dao.TaskMapper; +import com.casic.missiles.modular.system.dto.TaskStatusDto; +import com.casic.missiles.modular.system.model.Batch; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.model.Task; +import com.casic.missiles.modular.task.service.IBatchService; import com.casic.missiles.modular.task.service.ITaskService; -import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; import java.util.List; /** @@ -28,7 +31,11 @@ @Service public class TaskServiceImpl extends ServiceImpl implements ITaskService { private static String[] sendArr = {"生产中", "已发货", "待交付"}; + @Autowired + private IBatchService batchService; + @Autowired + private IDeviceService deviceService; @Override public List selectPageList(Page page, String keyword1, String keyword2, String keyword3, String keyword4) { @@ -95,4 +102,52 @@ } // return this.selectList(entityWrapper); } + + @Override + public void deleteTask(Long id) { + Task task =selectById(id); + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("task_id", id); + List batchList = batchService.selectList(batchEntityWrapper); + + if (batchList.size() > 0) { + List batchIdlist = new ArrayList<>(); + //删除批次 + batchList.forEach(batch -> { + batchIdlist.add(batch.getId()); + batchService.deleteById(batch.getId()); + }); + //删除设备 + EntityWrapper deviceEntityWrapper = new EntityWrapper<>(); + deviceEntityWrapper.in("batch_id", batchIdlist); + deviceEntityWrapper.eq("devtype_id", task.getDevtypeId()); + deviceService.delete(deviceEntityWrapper); + //如果是备案合同的批次,应该恢复删除数量 + batchList.forEach(batch -> { + long count = batch.getBatchCount(); + List batchList1 = getList(batch.getContractId(), task.getDevtypeId()); + for (Batch batch1 : batchList1) { + if (count < 1) break; + if (count <= batch1.getBatchCount() - batch1.getRemaincount()) { + batch1.setRemaincount(batch1.getRemaincount() + count); + batchService.updateById(batch1); + } else { + batch1.setRemaincount(batch1.getBatchCount()); + count = count - (batch1.getBatchCount() - batch1.getRemaincount()); + batchService.updateById(batch1); + } + } + }); + } + //删除任务 + deleteById(id); + } + + public List getList(Long contractId, Long devtypeId) { + EntityWrapper batchEntityWrapper = new EntityWrapper<>(); + batchEntityWrapper.eq("contract_id", contractId); + batchEntityWrapper.eq("batch_number", 0); + batchEntityWrapper.eq("devtype_id", devtypeId); + return batchService.selectList(batchEntityWrapper); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/util/DateUtils.java b/casic-device/src/main/java/com/casic/missiles/modular/util/DateUtils.java new file mode 100644 index 0000000..9b61a9e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/util/DateUtils.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.util; + + + +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +/** + * Created by Administrator on 2015/2/25. + */ +public class DateUtils { + public static SimpleDateFormat sdf_day = new SimpleDateFormat("yyyy-MM-dd"); + public static SimpleDateFormat sdf_day_time = new SimpleDateFormat("yyyyMMddhhmmss"); + public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + public static final SimpleDateFormat sdf5 = new SimpleDateFormat("HH:mm:ss"); + + + + /** + * 获取当年的第一天 + * @return + */ + public static Date getCurrYearFirst(){ + Calendar currCal=Calendar.getInstance(); + int currentYear = currCal.get(Calendar.YEAR); + return getYearFirst(currentYear); + } + + + /** + * 获取某年第一天日期 + * @param year 年份 + * @return Date + */ + public static Date getYearFirst(int year){ + Calendar calendar = Calendar.getInstance(); + calendar.clear(); + calendar.set(Calendar.YEAR, year); + Date currYearFirst = calendar.getTime(); + return currYearFirst; + } +} diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index eef713e..29ac078 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -1,18 +1,20 @@ server: port: 8083 + maxPostSize: -1 + maxHttpHeaderSize: 102400 ################### spring配置 ################### spring: datasource: - url: jdbc:mysql://111.198.10.15:11102/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + url: jdbc:mysql://192.168.0.212:3306/product_device?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull username: root - password: Casic203! + password: initial-size: 2 min-idle: 1 #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 - file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload\ + 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 + file-upload-path: C:\casic\tmp\ file-download-path: D:\tmp\ producerName: producer repairName: repair diff --git a/casic-web/src/main/resources/excel/repairsImp.xlsx b/casic-web/src/main/resources/excel/repairsImp.xlsx new file mode 100644 index 0000000..2202523 --- /dev/null +++ b/casic-web/src/main/resources/excel/repairsImp.xlsx Binary files differ